1

UIImageViewその内容に完全に適合することは可能ですか?

  • イメージとオブジェクトの原点がUIImageView一致します。
  • 画像のフレームとUIImageView対象物は一致していますか?

次のコードを使用してみました:

self.imageView.contentMode = UIViewContentModeScaleAspectFit;
[self.imageView setBounds:CGRectMake(self.imageView.bounds.origin.x,
                                     self.imageView.bounds.origin.y,
                                     self.imageView.bounds.origin.x + self.imageView.image.size.width,
                                     self.imageView.bounds.origin.y + self.imageView.image.size.height)];

However, in this way the UIImageView object starts at (0,0), while the image is centered on the screen.

Thanks in advance.

4

3 に答える 3

5

あなたが探しているのは、次のようなものだと思います。

   [self.imageView setFrame: AVMakeRectWithAspectRatioInsideRect(imageSize, self.imageView.frame)];

imageSizeは維持したい縦横比で、この場合のself.imageView.frameは境界矩形です

これは AVFoundation フレームワークの一部であるため、必ず以下を含めてください。

  #import <AVFoundation/AVFoundation.h>
于 2013-09-12T16:11:32.773 に答える
1

あなたの説明から、UIViewContentModeScaleAspectFill が必要なようです。

UIViewContentModeScaleAspectFit - イメージ ビュー内のイメージに合わせます。画像が画像ビューよりも小さい場合は、中央に配置されます。

UIViewContentModeScaleAspectFill - 画像ビュー内の画像を塗りつぶします。画像が画像ビューよりも小さい/大きい場合は、スケーリングされます。

UIViewContentMode に関するApple ドキュメント

于 2013-09-12T15:03:32.477 に答える
0

「UIImageView をそのコンテンツに完全に適合させることは可能ですか?」はい。あなたのコードは の を設定しようとしboundsますUIImageView。あなたがやりたいように聞こえるframeのは、のUIImageViewを画像のサイズに設定することです。

frameaUIViewboundsaの違いに慣れていない場合は、少しグーグルで検索してくださいUIView。それは重要な違いです。の実際のサイズまたは位置を設定する場合はUIImageView、その を使用します。frameこれは、 を含む の座標空間で動作しUIViewますUIImageView。代わりに、 に含まれるビューの座標空間に影響を与えたい場合UIImageViewは、bounds.

于 2013-09-12T16:02:15.843 に答える