我有從xib文件製作的自定義UITableViewCell。 而我UIImageView裏面的單元格,我設置固定的寬度和高度和40x40並設置爲隱藏在tableViewCell中動態改變UIImageView的寬度和高度
然後在cellForRowAtIndexPath數據源委託。我檢查該單元格的數據源是否包含圖像的URL。如果有,我設置ImageView出現。並且使用SDWebImage下載圖像,並在下載完成時在完成塊中調整imageView.frame的大小。
實際上,初看起來它工作正常。 ImageView是相同的大小和下載的圖像。但是,如果我向下滾動然後再次到達上方的單元格。它只是重新出現在40x40的尺寸上。誰能幫忙?
這是代碼,以防萬一,如果你好奇。我想代碼沒什麼問題,問題是我如何設置.xib文件中的UIImageView,但我不知道如何解決它。
// -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
if([item postImageURLString]){
void (^completionBlock)(UIImage *image, NSError *error, SDImageCacheType cacheType) = ^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
CGRect imageFrame = CGRectMake(cell.frame.size.width/3,cell.frame.size.height -5 -image.size.height, image.size.width, image.size.height);
[cell.postImageView setFrame:imageFrame];
};
[cell.postImageView setHidden:NO];
[cell.postImageView setImageWithURL:URL completed:completionBlock ];
}
請顯示整個方法。是否有一個原因是你調整圖像大小(你如何保證它不會比單元格大)? – Wain
我調整大小的原因是因爲這些圖像是由用戶上傳的,大小可以變化。我會限制寬度以適應ios屏幕。我將在稍後解決當前問題時實現HeightForRowAtIndexPath以重新調整單元格的高度。 –