当 tableview 出现时,起初没有图像。但是当我拖动它时,tableviewcells 中的图像就会出现。我正在使用自定义 tableviewcell 类。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UserCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (cell == nil) {
cell = [[UserCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
}
NSLog(@"%d",indexPath.row);
[cell setUser:_chatContent[indexPath.row]];
[cell initUI];
return cell;
}
这是我的自定义单元格类:
- (void)awakeFromNib {
[super awakeFromNib];
}
-(BOOL)initUI{
BOOL isSuccess;
self.userImageView = self.user.userImageView;
UIView *superView = self.contentView;
[superView addSubview:self.userImageView];
[self.userImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(superView.mas_top).with.mas_offset(8);
make.bottom.equalTo(superView.mas_bottom).with.mas_offset(-8);
make.left.equalTo(superView.mas_left).with.mas_offset(8);
make.width.equalTo(superView.mas_height).with.mas_offset(-16);
}];
self.userImageView.layer.cornerRadius = self.userImageView.frame.size.width/2;
self.imageView.clipsToBounds = YES;
isSuccess = YES;
return isSuccess;
}
最后,这是我的 imageview 代码:
User *user = _chatContent[i];
NSString *fileName = [NSString stringWithFormat:@"%d",i];
NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"jpg"];
user.userImageView = [[UIImageView alloc] initWithImage: [UIImage imageNamed:filePath]];
最佳答案
在为 imageView 设置图像之前将单元格的 imageView.image
设置为 nil
因为 tableView 每次滚动时都会重新加载单元格。
设置imageView.image
后立即调用UITableViewCell的setNeedsDisplay
和reloadInputViews
设置image。
[cell reloadInputViews];
[cell setNeedsDisplay];
希望对您有所帮助。
关于ios - tableviewcell 中的图像不会立即出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38435482/