ios UITableView 的 UITableViewCell 的重用机制不对造成内容重复读取

NSString *reusedIdentifer = @"recipeDosageCell";
    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:reusedIdentifer];
    
    if (cell == nil) {
        cell = [[UITableViewCell alloc ] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reusedIdentifer];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
    }

?1.定义一个重用的cell,如果在外面给他的内容复制,当重复刷新就会重复显示cell的内容,之所以会造成这种结果,是在reloadData的时候,会重新调用cellForRowAtTableView ,然后找可以重用的cell,如果找到了就会用那个重用的cell,并且再次给他的内容赋值,结果就会造成重复显示。

?

解决方法,首先cell初始化时定义他的subview, 然后在外层给他的subview进行赋值。

?

2.如果一个tableview 中有多种cell ,则需要定义多个cell,然后进行重用

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。