首页登陆欢迎您!
首页登陆 > 运维知识 > UITableViewCell ---和--- UICollectionViewCell 自定制须求当心

UITableViewCell ---和--- UICollectionViewCell 自定制须求当心

时间:2019-12-06

本文实例讲述了JS实现简单路由器功能的方法。分享给大家供大家参考。具体实现方法如下:

要如何实现tableView的多选呢下面我总结了一下,只需要实现四个方法就能实现cell的多选模式
首先tableView的必须实现的协议方法不包含在四个方法里面,其中一个是UIViewcontroller里的方法,并不是协议方法.但是执行此方法会有一个bug,当你提交两种style时(在第二个实现方法中)不能实现滑动删除.
其中第一个方法是UIViewcontroller的方法 设置可编辑模式

UITableView 的Cell 有两个注册方式: ( 一 ) 利用XIB拖拽控件来实现自定制的目的.必须使用方法一 实现注册Cell;(二)利用自己编写代码, 利用Masonry 等第三方,来实现自动布局,必须使用方法二 实现注册Cell.

var wawa = {};wawa.Router = function{ } Router.prototype.setup = function(routemap, defaultFunc){ var that = this, rule, func; this.routemap = []; this.defaultFunc = defaultFunc; for  { if (!routemap.hasOwnProperty continue; that.routemap.push({ rule: new RegExp, func: routemap[rule] }); } }; Router.prototype.start = function(){ console.log; var hash = location.hash, route, matchResult; for (var routeIndex in this.routemap){ route = this.routemap[routeIndex]; matchResult = hash.match; if { route.func.apply(window, matchResult.slice; return; } } this.defaultFunc(); }; return Router;}();var router = new wawa.Router();router.setup': function{ console.log; }, '#/show/{ console.log; }}, function(){ console.log;router.start();
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [_tableView setEditing:editing animated:animated];
    if (editing) {
    // no done
    } else {
    // delete selected array   
    [array removeObjectsInArray:_selectedArray]; // selected component added array
   [_tableView deleteRowsAtIndexPaths:_selectedIndexArray  withRowAnimation:UITableViewRowAnimationLeft]; // selected indexPath added array
       [_selectedIndexArray removeAllObjects];  // empty array component
       [_selectedArray removeAllObjects];   // empty array component
    }
}

UITableViewCell实现注册方法

希望本文所述对大家的javascript程序设计有所帮助。

第二个实现方法UITableViewdelegate 返回style

方法一:利用XIB 方法, 实现注册cell
[_tableView registerNib:[UINib nibWithNibName:@"自定制Cell 的文件名" bundle:nil] forCellReuseIdentifier:@"复用 ID"];
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {
   // selected deleteStyle and insertStyle at the same time 
    return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
}
方法二: 纯代码 实现注册cell
[_tableView registerClass:[纯代码编写cell 的类名 class] forCellReuseIdentifier:@"复用 ID"];
/*
// 例如: 
// CommonCell 是一个自定制的 UITableViewCell
[_tableView registerClass:[CommonCell class] forCellReuseIdentifier:@"CommonCell"];
*/

针对第二种方法实现的定制cell的功能, 需要注意, 必须实现

- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
    if (self) {
        /*
          需要在这里编写代码,实现自定制的功能.为了方便维护, 我写成一个一个函数, 在这里调用.
        */
        [self createUI]; // 创建 UI 界面 (使用 Masonry 实现自动布局)
    }
    return self;
}
上一篇:JavaScript中的函数嵌套使用_根基知识_脚本之家 下一篇:没有了