小子最近做了一个根据接口返回的数据在Cell中动态创建控件,感觉应该会一部分人卡在这里,小子就跟大家分享一下:
1.控件重复创建:这个问题出现的原因是动态创建的cell内容的时候,无法进行重用设置,所以滑动的时候会多次调用创建Cell内容,这时动态添加的控件就会重复添加到Cell里面来,导致控件叠层了。
解决:在动态添加控件之前清除掉cell.contentView的内容
- (void)removeAllSubviews {
while (self.subviews.count) {
[self.subviews.lastObject removeFromSuperview];
}
}
2.xib重用:想必大家使用xib创建Cell的时候有时候会忽略掉重用问题,导致tableview不够流畅
解决:在给cell加上id的时候务必在相对于的xib里面的id处加上cell的id
3.动态创建的Cell的高度设置问题:动态创建cell的时候怎么给他的高度设值又是一个坑
解决:由于tableview跑完cellForRowAtIndexPath方法之后才跑heightForRowAtIndexPath方法,所以我们可以在动态设置完cell之后返回一个高度赋值给height。
以上就是小子分享给大家的一些体会,如果有错希望大家相互指导。接下去小子会尽量将自己新学的东西分享给大家。如果转载请附上链接,谢谢!