2016-12-09 6 views
0

UITableViewCellで画像を表示しています。私が画面に入っているとき、画像は表示されませんが、スクロールした後、たとえば画像が表示されているセルを元に戻します。問題は以下のとおりです。方法:UITableViewの画像セルが再利用されるまでセルが表示されない

enter image description here

私が使用しているコードはbtnUploadImageActionに

[tableView reloadData]; 

を追加

{ 
    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; 
} 
+0

'EMROUploadImageCell'と' sd_setImageWithURL'を表示します。 – shallowThought

答えて

0

です。メインスレッド上

0

リロードテーブルには、私は、同じ問題以前に役立ちます

dispatch_async(dispatch_get_main_queue(), ^{ 
    [tableView reloadData]; 
}); 

希望に直面してきました!

0
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    EMROUploadImageCell *cell = (EMROUploadImageCell *)[tableView dequeueReusableCellWithIdentifier:@"EMROUploadImageCell"]; 

    [tableView beginUpdates]; 
    // your code 
    [tableView endUpdates]; 

    return cell; 
} 

希望します。

関連する問題