Xib - 通过 Xib 加载自定义 Cell
变更记录
序号 | 录入时间 | 录入人 | 备注 |
---|---|---|---|
1 | 2015-08-24 | Alfred Jiang | - |
2 | 2015-12-23 | Alfred Jiang | - |
2 | 2016-03-11 | Alfred Jiang | - |
方案名称
Xib - 通过 Xib 加载自定义 Cell
关键字
Xib \ UITableViewCell \ 自定义
需求场景
- 需要实现较为复杂的 cell 布局,通过 xib 方式实现
参考链接
详细内容
2016-03-11 更新
通过 File -> New -> File… -> iOS -> Source -> Cocoa Touch Class 创建 Cell
在 Class 中输入自定义 Cell 名称(示例:PSWConfigSwitchViewCell);在 Subclass of 中输入父类 UITableViewCell ; 勾选 Also create Xib file 选项 ; 选择平台(iPhone / iPad) 和语言(Objective-C / Swift)
在 PSWConfigSwitchViewCell.h 中申明初始化方法
1 | + (instancetype)cellWithTableView:(UITableView *)tableView; |
- 在 PSWConfigSwitchViewCell.m 中实现初始化方法
1 | + (instancetype)cellWithTableView:(UITableView *)tableView |
- 在 cellForRowAtIndexPath 方法中加载自定义 Cell
1 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath |
- 可以在 PSWConfigSwitchViewCell.xib 中布局更多控件并关联 PSWConfigSwitchViewCell 类,亦可以在 PSWConfigSwitchViewCell.(h/m) 中申明实现更多自定义方法。
2015-12-23 之前创建
通过 File -> New -> File… -> iOS -> Source -> Cocoa Touch Class 创建 Cell
在 Class 中输入自定义 Cell 名称(示例:TestTableViewCell);在 Subclass of 中输入父类 UITableViewCell ; 勾选 Also create Xib file 选项 ; 选择平台(iPhone / iPad) 和语言(Objective-C / Swift)
下面进入 TestTableViewCell.xib -> Test TableView Cell -> Utilities 面板 -> Show the Indentity inspector
在 Restoration ID 中输入重用 ID(示例:TestTableViewCell), 这个 ID 将用于重用 cell
在 ViewDidLoad 方法中向使用该 Cell 的 UITableView 注册 Xib 定义的 Cell.
1 | [self.tableViewMain registerNib:[UINib nibWithNibName:NSStringFromClass([TestTableViewCell class]) bundle:nil] forCellReuseIdentifier:@"TestTableViewCell"]; |
- 在 cellForRowAtIndexPath 方法中加载自定义 Cell
1 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath |
效果图
(无)
备注
尽量避免在 cell 的数据加载中进行数据运算,相关 cell 的显示依赖数据,尽量在 Model 中初始化完成, cell 直接读取显示。更多参考