1

ばかげた質問に聞こえるかもしれませんが、申し訳ありません。画像を適切にスケーリングした後、画像の四角形のサイズを取得したい。私が考えた1つの方法は、imageView自体のサイズを変更して「.frame」を使用できるかどうかです。周囲の空白を取り除く他の方法はありますか?

4

1 に答える 1

1

contentModeimageView の に基づいて、imageViewUIViewContentModeScaleAspectFitのプロパティを設定するimageと、次を使用して画面上の画像のサイズ (ポイント単位) を決定できます。

-(CGSize)onScreenPointSizeOfImageInImageView:(UIImageView *)imageView{
    CGFloat scale;
    if (imageView.frame.size.width > imageView.frame.size.height) {
        if (imageView.image.size.width > imageView.image.size.height) {
            scale = imageView.image.size.height / imageView.frame.size.height;
        } else {
            scale = imageView.image.size.width / imageView.frame.size.width;
        }
    } else {
        if (imageView.image.size.width > imageView.image.size.height) {
            scale = imageView.image.size.width / imageView.frame.size.width;
        } else {
            scale = imageView.image.size.height / imageView.frame.size.height;
        }
    }
    return CGSizeMake(imageView.image.size.width / scale, imageView.image.size.height / scale);
}

次に、画像の画面上のサイズに基づいて画像ビューのフレームを設定し、画像の周りの「空白」を削除します。

myImageView.image = myImage;
CGSize imageSize = [self onScreenPointSizeOfImageInImageView:myImageView];
CGRect imageViewRect = myImageView.frame;
imageViewRect.size = imageSize;
myImageView.frame = imageViewRect;
于 2013-10-14T12:47:25.653 に答える