[英]Image in tableviewcell not appearing immediately
When the tableview appears, at first there are no images. 当桌面视图出现时,首先没有图像。 But when I drag it, the images in the tableviewcells will appear.
但是当我拖动它时,tableviewcells中的图像将会出现。 I am using a custom tableviewcell class.
我正在使用自定义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;
}
This is my custom cell class: 这是我的自定义单元类:
- (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;
}
Finally, this is my imageview code: 最后,这是我的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]];
Set the cell's imageView.image
to nil
before setting image for imageView because tableView reloads cells every time it is scrolled. 在为imageView设置图像之前将单元格的
imageView.image
设置为nil
,因为tableView每次滚动时都会重新加载单元格。 After setting imageView.image
call setNeedsDisplay
and reloadInputViews
of UITableViewCell to set image immediately. 设置完成后
imageView.image
调用setNeedsDisplay
和reloadInputViews
的UITableViewCell的立即设置图像。
[cell reloadInputViews];
[cell setNeedsDisplay];
Hope it helps. 希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.