tableview
안에 collectionview
을 사용하여 비동기 적으로 다운로드되는 이미지를 보여줍니다. 내가해야 할 일은 그 이미지를 쥐어 짜지 않고 보여주는 것입니다. collectionview
의 높이를 일정하게 유지하고 이미지를 다운로드 한 후 크기를 계산합니다. UIIamgeView
UIViewContentModeScaleAspectFit의 콘텐츠 모드를 유지합니다. 이것이 내 의도 한 결과를 얻기 위해 내가 한 일입니다. 이미지 크기 조정에 대한높이를 일정하게 유지하면서 UIImageView의 contentmode UIViewContentModeScaleAspectFit을 사용하여 이미지 품질을 잃지 않도록하는 방법은 무엇입니까?
- (void)configureMediaCell:(MediaContainerViewCell *)weakCell withMediaItem:(MSZWallPostMedia *)mediaItem withDownloadImage:(UIImage *)image{
if (mediaItem.isFrameSet == NO) {
weakCell.isFrameSet = YES;
weakCell.cellImageView.image = image;
weakCell.cellImageView.contentMode = UIViewContentModeScaleAspectFit;
CGRect frame = weakCell.cellImageView.frame;
//Image Scaling
CGSize scaleSize = [self imageScale:weakCell.cellImageView];
scaleSize.width = scaleSize.width * image.size.width;
scaleSize.height = scaleSize.height * image.size.height;
frame.size.width = scaleSize.width;
frame.size.height = scaleSize.height;
weakCell.cellImageView.frame = frame;
mediaItem.frame = frame;
mediaItem.isFrameSet = YES;
[weakCell.activityIndicatorView stopAnimating];
[self.collectionView reloadItemsAtIndexPaths:@[weakCell.indexPath]];
} else {
[weakCell.activityIndicatorView stopAnimating];
weakCell.cellImageView.image = image;
weakCell.cellImageView.frame = mediaItem.frame;
weakCell.cellImageView.contentMode = UIViewContentModeScaleAspectFit;
}
}
:
- (CGSize)imageScale : (UIImageView *)imageView {
CGFloat sx = imageView.frame.size.width/imageView.image.size.width;
CGFloat sy = imageView.frame.size.height/imageView.image.size.height;
CGFloat s = 1.0;
switch (imageView.contentMode) {
case UIViewContentModeScaleAspectFit:
s = fminf(sx, sy);
return CGSizeMake(s, s);
break;
case UIViewContentModeScaleAspectFill:
s = fmaxf(sx, sy);
return CGSizeMake(s, s);
break;
case UIViewContentModeScaleToFill:
return CGSizeMake(sx, sy);
default:
return CGSizeMake(s, s);
}
}
이 방법의 문제는 내가 올바른 너비와 높이를 얻을 수 있지만, 일부 이미지는 내가 이미지 뷰의
Aspectfit
속성을 사용하고 있기 때문에 분명하다있는 작은 도시이다
하는 첨부 된 화면에 표시됩니다.
이에 관한 어떤 도움을 주시면 감사하겠습니다. 나는 그들이 고정되고 가변 너비의 높이를 유지하는 것처럼 이미지를 유지할 필요가있다.