UIday1101:UITableView 3 自定义cell 多种cell混合使用 cell自适应高度
2015-09-08 20:53
501 查看
⼀、⾃定义 cell
⾃定义 cell 就是创建⼀个 UITableViewCell 的⼦类。
把 cell 上的控件创建都封装在⼦类中,简化 UIViewController 中的代码
⼦视图控件添加到 cell 的 contentView 上。
cell 中的控件如何显示 Model 中的信息?
cell 中声明⼀个 Model 类型的属性, viewController 中获取到 Model 对 象后赋值给 cell 的 Model 属性,
cell 中重写 Model 的 setter ⽅法,把 Model 对象中的内容重新赋值给各个控件
M 和 V 不直接进⾏通信, C 负责 M 和 V 之间进⾏通信
⼆、多种类型的 CELL 混合使用
开发中常⻅多种类型的 cell 混合在⼀个 tableView 中使⽤。
通常每种类型的 cell 有不同的布局样式。
注意事项:
通常我们会在 tableView:cellForRowAtIndexPath: ⽅法中根据不同的 Model 来决定使⽤什么类型的 cell
每种类型的 cell 要定义不同的重⽤标识符
cell 重⽤的时候会根据重⽤标识从重⽤队列中取⽤哪种类型的 cell
三、 CELL ⾃适应高度
计算⼀段⽂本在限定宽⾼内所占矩形⼤小
//iOS7 计算⽂本⾼度⽅法:
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context;
计算⽂本⾼度是所⽤的字体要和 label 显⽰时⽤的字体⼀致。
label 的宽度要和计算时使⽤的限定宽度⼀致。
这样才能保证文本显⽰在 label 中时, label ⾼度恰巧够。
tableView:heightForRowAtIndexPath: ⽅法要比 tableView:cellForRowAtIndexPath 先执⾏。
所以要提前计算好每⾏ cell 需要多少⾼度。
⾃定义 cell 就是创建⼀个 UITableViewCell 的⼦类。
把 cell 上的控件创建都封装在⼦类中,简化 UIViewController 中的代码
⼦视图控件添加到 cell 的 contentView 上。
cell 中的控件如何显示 Model 中的信息?
cell 中声明⼀个 Model 类型的属性, viewController 中获取到 Model 对 象后赋值给 cell 的 Model 属性,
cell 中重写 Model 的 setter ⽅法,把 Model 对象中的内容重新赋值给各个控件
M 和 V 不直接进⾏通信, C 负责 M 和 V 之间进⾏通信
⼆、多种类型的 CELL 混合使用
开发中常⻅多种类型的 cell 混合在⼀个 tableView 中使⽤。
通常每种类型的 cell 有不同的布局样式。
注意事项:
通常我们会在 tableView:cellForRowAtIndexPath: ⽅法中根据不同的 Model 来决定使⽤什么类型的 cell
每种类型的 cell 要定义不同的重⽤标识符
cell 重⽤的时候会根据重⽤标识从重⽤队列中取⽤哪种类型的 cell
三、 CELL ⾃适应高度
计算⼀段⽂本在限定宽⾼内所占矩形⼤小
//iOS7 计算⽂本⾼度⽅法:
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context;
计算⽂本⾼度是所⽤的字体要和 label 显⽰时⽤的字体⼀致。
label 的宽度要和计算时使⽤的限定宽度⼀致。
这样才能保证文本显⽰在 label 中时, label ⾼度恰巧够。
tableView:heightForRowAtIndexPath: ⽅法要比 tableView:cellForRowAtIndexPath 先执⾏。
所以要提前计算好每⾏ cell 需要多少⾼度。
//cell只能设置高度,宽度是和tabView屏幕一样宽的 -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return 100; }
相关文章推荐
- Permutation Sequence
- 【postgresql】创建自增SEQUENCE
- UIday1002:UITableView 2 用UITableView实现通讯录cell简单的数据移动、删除、添加功能
- Uva-12166-Equilibrium Mobile(逆向思维, map)
- [APUE]再读之进程间通信
- tabBarItem setBadgeValue 样式自定义(IOS)
- iOS UIRefreshControl的使用 示例
- LeetCode || N-Queens II
- 把一个数组遍历倒序放到另一个数组中,数组取值是c:out value
- SPOJ 375 QTREE Query on a tree 树链剖分水题
- IOS_UI_Animation
- poj3614 priority queue
- IOS_UI_Block 传值
- EasyUI单击行数据时动态编写editor
- UIImagePickerController 详解
- IOS_UITableViewController 视图控制器的生命周期
- IOS_UITabBarController
- [POJ3061]Subsequence
- UvaLive 4287 Proving Equivalences 强连通缩点
- hibernate.Query查询