问题描述
升级到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自适应高度的时候,最好
- tableIViewCell颜色和content颜色一致,这样即使contentView没有出来,也不会影响效果
- 若要里面要不同的view时,最好新添加一个view,把所要显示的内容放到这个view上
- 若要有多个内容依赖于contentView时,可以先以一个为准,然后其他的view添加到cell上,而不是contentView上。这样就不会产生contentView的约束冲突
PS
但是10.2就不会出现这个问题,10.3就有这个问题。目前10.3cell复用不知道有什么改动。若有小伙伴们知道10.3修改了什么,而导致这个结果。欢迎交流讨论。
网友评论