我正在我的UITableViewCell中设置一个用sdwebimage下载的图像.为了保持UITableView不显示错误的图像,我需要在prepareForReuse中将图像设置为nil.但是,我在实现这个方面遇到了一些麻烦.
这是我设置图像的地方:
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- static NSString * reuseIdentifier = @"programmaticCell";
- MGSwipeTableCell * cell = [self.tableView dequeueReusableCellWithIdentifier:reuseIdentifier];
- if (!cell) {
- cell = [[MGSwipeTableCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:reuseIdentifier];
- }
- CGFloat brightness = [UIScreen mainScreen].brightness;
- cell.textLabel.text = [self.streams[indexPath.row] name];
- cell.detailTextLabel.text = [self.streams[indexPath.row] published];
- NSString *imageUrl = [NSString stringWithFormat: @"%@",[self.streams[indexPath.row] photo]];
- NSLog(@"Image is: %@ and path is: %d",imageUrl,indexPath.row);
- [cell.imageView sd_setImageWithURL:[NSURL URLWithString:imageUrl]
- placeholderImage:[UIImage imageNamed:@"tile-blue.png"] options:indexPath.row == 0 ? SDWebImageRefreshCached : 0];
- cell.delegate = self; //optional
- return cell;
- }
当我实现 – (void)prepareForSegue Xcode不断抛出错误,说单元格不可用.实现这个的正确方法是什么?
解决方法
尝试将此添加到您的MGSwipeTableCell.m:
- -(void)prepareForReuse
- {
- [super prepareForReuse];
- self.textLabel.text = @"";
- self.detailTextLabel.text = @"";
- self.imageView.image = nil;
- }