本文主要是介绍UITableViewCell复用重叠的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
更多iOS 学习知识,总结尽在 的墨科技:传送门
当用到cell重用时 会出现以下问题:只要cell重用了,内容就会覆盖叠加
当cell重用时,就出现了以上问题,叠加
解决办法
[_listTableView registerNib:[UINib nibWithNibName:@"InformationCell" bundle:nil] forCellReuseIdentifier:@"Infor"];
- (InformationCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString * cellIndentifier = @"Infor";
InformationCell *cell = (InformationCell*)[tableView dequeueReusableCellWithIdentifier:cellIndentifier forIndexPath:indexPath];
if ( cell == nil ) {
cell = [[InformationCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIndentifier];
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
MessageModel * model = [_messArray objectAtIndex:indexPath.row];
if ( [model isKindOfClass:[MessageModel class]] ) {
[cell loadData:model];
}
return cell;
}
[_listTableView registerClass:[ActivityTableViewCell class] forCellReuseIdentifier:@"activityCell"]; // activityCell 自定义的名称
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
ActivityTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"activityCell"];
if (!cell) {
cell = [[ActivityTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"activityCell"];
}
ActivityModel *model = [_array objectAtIndex:indexPath.section];
cell.activityModel = model;
cell.selectionStyle=UITableViewCellSelectionStyleNone;
return cell;
}
关键的一步
cell.m进行创建UILayout时,初始化cell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
[self createActivityUI];
}
return self;
}
//- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
// [super setSelected:selected animated:animated];
//
// [self createActivityUI];
//}
应该使用未注释的代码,进行创建,会正常显示
如果使用了注释的代码,即会产生cell的重用叠加错误
这篇关于UITableViewCell复用重叠的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!