iOS10.3 tableViewcell复用出现错乱

问题描述

升级到iostableCell出现如下问题
10.3.gif

问题解决过程

图层分析图
从图层分析图可以看出 下面拉上来的contentView不见了
查找代码发下

 [self.contentView addSubview:self.fouceOn];
   - (void)fouceOnF{

    [_fouceOn mas_makeConstraints:^(MASConstraintMaker *make) {
        make.centerY.mas_equalTo(self.contentView.mas_centerY);

        make.width.mas_equalTo(MasScale_1080(120));

        make.height.mas_equalTo(MasScale_1080(75));

        make.trailing.mas_equalTo(self.contentView.mas_trailing).offset(MasScale_1080(-46));
    }];


}
- (void)setContenViewF{


    [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.top.mas_equalTo(self);

        make.leading.mas_equalTo(self.mas_leading).offset(0);

        make.trailing.mas_equalTo(self.mas_trailing).offset(0);

        make.bottom.mas_equalTo(_imgView.mas_bottom).offset(MasScale_1080(62)).priority(600);


    }];

}
分析

我的代码是采用 ios8以上的estimatedRowHeight属性来自适应高度的
所有有最后一段代码。

但是这个是根据内容来获取高度。因为复用的时候,contentView的约束会产生冲突,所以contentView没有显示出来。

解决方法

    [self addSubview:self.fouceOn];

让按钮放到self上,而不是contentView上,这样contentView的约束就有了

反思

PS采用estimatedRowHeight自适应高度的时候,最好
1. tableIViewCell颜色和content颜色一致,这样即使contentView没有出来,也不会影响效果
2. 若要里面要不同的view时,最好新添加一个view,把所要显示的内容放到这个view上
3. 若要有多个内容依赖于contentView时,可以先以一个为准,然后其他的view添加到cell上,而不是contentView上。这样就不会产生contentView的约束冲突

PS

但是10.2就不会出现这个问题,10.3就有这个问题。目前10.3cell复用不知道有什么改动。若有小伙伴们知道10.3修改了什么,而导致这个结果。欢迎交流讨论。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值