我使用以下行在cellForRowAtIndexPath ...自定义单元格中延迟加载我的图像。
[cell.picImageView sd_setImageWithURL:bkgUrl placeholderImage:[UIImage imageNamed:@"holder_image_plain.png"]];
[cell.profileImageView sd_setImageWithURL:proUrl placeholderImage:[UIImage imageNamed:@"launch_120.png"]];
// 然后,当用户在didSelectRowAt中点击自定义单元格时,检查图像是否已从占位符更改为用户图像...
if([cell.profileImageView.image isEqual:[UIImage imageNamed:@"launch_120.png"]] && [cell.profileImageView.image isEqual:[UIImage imageNamed:@"launch_120.png"]]){
NSLog(@"NOT yet...imge dl not complete");
}else{
NSLog(@"All clear....go to detail page");
这导致了不一致的结果。我认为这是因为显示器显示的不止一个单元格。所以我想知道我是否可以指定检查所选单元格图像是否已更改?谢谢你的帮助。
答案 0 :(得分:0)
通过此流程,您可以使视图负责跟踪状态。你应该让你的模型跟踪你应该/不应该进入下一页的时间。
您可以通过使用完成处理程序的方法之一来完成此操作。然后,您可以在完成处理程序中根据需要更新模型,然后您的didSelectRowAtIndexPath:
将询问模型而不是视图下一步应该做什么
之前我没有使用过这个库,但是这应该会给你一些开始的东西
__weak UIImageView *weakImageView = cell.profileImageView;
[cell.profileImageView sd_setImageWithURL:proUrl
placeholderImage:[UIImage imageNamed:@"launch_120.png"]
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
if (image) {
// Update model to say that the image was downloaded
weakImageView.image = image;
[weakImageView setNeedsLayout];
}
}];