我有UITableViewCell
显示文字和可选图片。然而,当显示图像时,它变得有点儿麻烦,因为在-(void)prepareForReuse:
中我将imageCell
的{{1}}设置为nil,并且在滚动时需要在每个图像中加载图像时间。
在我的tableViewCell
中,这是我用来准备重用的代码:
customTableViewCell.m
通过删除行- (void)prepareForReuse {
[super prepareForReuse];
self.noteLabel.text = nil;
self.textLabel.text = nil;
self.imageCell.image = nil;
self.personImage = nil;
}
,某些单元格将复制其他self.imageCell.image = nil;
中的imageCell
,因此我必须使用UITableViewCells
方法。
如果在加载所有单元格时它有图像,有没有办法不将prepareForReuse
设置为nil?我试过了
imageCell
我试着说:如果if(self.iamgeCell.image == nil){
self.imageCell.image = nil;
}
在重用之前为空,请在准备重用时将其设置为nil,但这样做效果不佳。
这是我目前如何使用imageCell
方法加载图片:
cellForRowAtIndex
答案 0 :(得分:2)
有几件事。您发布的此代码中的逻辑是向后的,并且不会做任何事情:
if(self.iamgeCell.image == nil){
self.imageCell.image = nil;
用英语表示"如果图像为零,则将其设置为nil。你想要反过来:
if(self.iamgeCell.image != nil){
self.imageCell.image = nil;
英文表示表示"如果图片不是nil,请将其设置为nil。
但是总是希望它为零,所以为什么要检查,只需在prepareForReuse中将其设置为nil。
self.imageCell.image = nil;
我通常不会实现prepareForReuse。相反,在我的数据源方法中,我总是完全配置一个单元格,将所有字段设置为显式值(图像,如果他们不需要图像,则为零)将此视为重新使用纸质表单。您必须删除上一个用户写入的所有字段。