[英]Image in UITableView Cell not showing until the cell re used
我在UITableViewCell中显示图像。 当我进入屏幕时,图像没有显示,但是在滚动后(例如,重新启动单元格后,图像显示了)。 问题如下所示。
我使用的代码是
{
EMROUploadImageCell *cell = (EMROUploadImageCell *)[tableView dequeueReusableCellWithIdentifier:@"EMROUploadImageCell"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
if (![[dictInput valueForKey:@"image"]isEqualToString:@""])
{
cell.imageViewUploadImage.layer.borderWidth = 0.0;
cell.imageViewUploadImage.layer.cornerRadius = cell.imageViewUploadImage.frame.size.height/2;
cell.imageViewEdit.hidden = YES;
cell.imageViewUploadImage.clipsToBounds = YES;
if (isImageChanged)
{
NSData *data = [NSData dataWithContentsOfFile:[dictInput valueForKey:@"image"]];
UIImage *image = [UIImage imageWithData:data];
[cell.imageViewUploadImage setImage:image];
}
else
{
[cell.imageViewUploadImage sd_setImageWithURL:[NSURL URLWithString:[dictInput valueForKey:@"image"]]
placeholderImage:nil
options:SDWebImageRefreshCached];
}
}
else
{
cell.imageViewUploadImage.layer.borderWidth = 1.0f;
cell.imageViewUploadImage.layer.borderColor = [[UIColor lightGrayColor] CGColor];
cell.imageViewUploadImage.layer.cornerRadius = cell.imageViewUploadImage.frame.size.height/2;
cell.imageViewEdit.hidden = NO;
cell.imageViewEdit.clipsToBounds = YES;
cell.imageViewUploadImage.layer.masksToBounds = YES;
cell.imageViewUploadImage.clipsToBounds = YES;
[cell.imageViewUploadImage setNeedsDisplay];
[cell.imageViewUploadImage setNeedsLayout];
[cell.imageViewUploadImage layoutIfNeeded];
}
[cell.btnUploadImage addTarget:self action:@selector(btnUploadImageAction:) forControlEvents:UIControlEventTouchUpInside];
return cell;
}
加
[tableView reloadData];
进入btnUploadImageAction:方法。
在主线程上重新加载表,我之前也遇到过同样的问题,
dispatch_async(dispatch_get_main_queue(), ^{
[tableView reloadData];
});
希望有帮助!
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
EMROUploadImageCell *cell = (EMROUploadImageCell *)[tableView dequeueReusableCellWithIdentifier:@"EMROUploadImageCell"];
[tableView beginUpdates];
// your code
[tableView endUpdates];
return cell;
}
希望有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.