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)];

但是,在这种方式中,UIImageView对象从 开始(0,0),而图像位于屏幕中央。

提前致谢。

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

From your description, it seem you want UIViewContentModeScaleAspectFill.

UIViewContentModeScaleAspectFit - will fit the image inside the image view. If the image is smaller than the image view it will be centered.

UIViewContentModeScaleAspectFill - will fill the image inside the image view. If the image is smaller/bigger than the image view it will be scaled.

Apple Documentation for UIViewContentMode

于 2013-09-12T15:03:32.477 回答
0

“是否可以将 UIImageView 完美地融入其内容?” 是的。您的代码尝试设置bounds. UIImageView听起来你想做的是将 的 设置frame图像UIImageView的大小。

如果您不熟悉frameaUIViewboundsa之间的区别,请使用 Google 搜索UIView;这是一个重要的区别。如果要设置 的实际大小或位置UIImageView,请使用其frame,它在UIView包含您的UIImageView. 相反,如果您想影响 包含的视图的坐标空间UIImageView,则可以使用bounds.

于 2013-09-12T16:02:15.843 回答