我使用的Tableview 和cell
2016-05-25 11:41
232 查看
tableView 常用的属性 和方法
代码块
//tableView 的Cell 线条的偏移量self.tableView.separatorInset = UIEdgeInsetsMake(0, SCREEN_WIDTH, 0, 0);
//点击cell后 颜色不变
cell.selectionStyle = UITableViewCellSelectionStyleNone;
//设置tableView不可滑动
self.tableView.scrollEnabled = NO;
//滚动条不显示
self.myTableView.showsVerticalScrollIndicator = NO;
自定义的cell
如果cell需要在tableView 里注册的时候【cell 里写的东西】- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { self = [[[NSBundle mainBundle] loadNibNamed:@"YCGJSouSuoCell" owner:nil options:nil]lastObject]; } return self; }
//cell不被点击状态 但是还是有点击事件
cell.selectionStyle = UITableViewCellSelectionStyleNone;
//取消cell 的点击事件
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; cell.selected = NO; }
如何提高tableView的加载速度?
协议:HeightForRow和cellForRow 执行顺序?在执行cellForRow之前,table中如果有100行,那么会执行100次HeightForRow,计算出table的内容总高度,为了让右侧滑动条显示准确
当实现estimatedHeightForRow协议以后,HeightForRow方法只会当cell加载时,才运行。
//下方协议,也是通过autoLayout实现cell高度自动匹配的
-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewAutomaticDimension; }
优化tableView:
1.正确使用tableView的重用机制2.如果显示内容为网络图片,使用框架(SD或AF)异步加载并缓存数据
3.在滚动的过程中尽量少往cell中添加控件,应该在Cell初始化(系统cell或纯代码定义cell时用initWithStyle,initWithCoder(子控件没有创建好呢)或aweakFromNib子控件已经创建好)时创建控件,如果刚开始用不上可以先hidden用上的时候显示出来
4.尽量不用或少用透明视图
5.提前计算并缓存好cell的高度,避免同一个cell高度计算好几次,用一个数组保存曾经计算过的cell的高度,如果调用计算高度的方法的时候先去数组里面取如果有就直接用,如果没有再计算并把高度保存到数组里
6.自定义绘制,直接对CAlayer进行操作 而不是对UIView,UIVIew的绘制是建立在CoreGraphics之上的 使用的是CUP,而CaLayer使用的是CPU和GPU通吃,有系统决定具体使用哪个。
相关文章推荐
- 看开源代码利器—用Graphviz + CodeViz生成C/C++函数调用图(call graph)
- 将数据文件插入到mysql
- iOS开发——获取本设备IP
- Java Socket 多线程聊天室
- 电脑开机后多了OneKey Ghost启动选项解决方法
- 哪些组件可以绑定到Service?
- CSS3的内径剪切问题(背景边框是虚线)
- ubuntu 下 eclipse 菜单不见了解决办法
- 提交表单后 PHP获取提交内容的实现方法
- 详解易语言中的数据类型
- 怎样将PDF中的文本导出
- HODJ 2962 Trucking
- 什么是Spring的依赖注入。
- iOS之AFN错误代码1016(Error Domain=com.alamofire.error.serialization.response Code=-1016 "Request failed: unacceptable)
- 冲刺第二阶段第二天
- Git免密码提交
- 纯css三级导航
- 正则_学习笔记
- Unreal Engine 4 —— 使用反汇编来确定该进行优化的地方
- python 学习笔记十四 jQuery案例详解(进阶篇)