xib 파일에서 만든 사용자 지정 UITableViewCell이 있습니다. 그리고 난 고정 폭 및 높이를 설정 40x40 숨겨진UIImageView의 너비와 높이가 tableViewCell에서 동적으로 변경됩니다.
설정 그 셀 내부와 다음 cellForRowAtIndexPath 데이터 소스 대리자 UIImageView에있다. 해당 셀의 데이터 소스에 이미지 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가 나중에 현재의 문제를 해결할 때 셀 높이를 다시 조정할 것을 암시합니다. –