我使用的Tableview 和cell

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通吃,有系统决定具体使用哪个。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值