是否可以将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)
开始,而图像则以屏幕为中心。
提前致谢。
答案 0 :(得分:5)
我认为你正在寻找的东西是:
[self.imageView setFrame: AVMakeRectWithAspectRatioInsideRect(imageSize, self.imageView.frame)];
其中 imageSize 是您希望维护的宽高比,在本例中 self.imageView.frame 是边界矩形。
这是AVFoundation Framework的一部分,因此请务必包括:
#import <AVFoundation/AVFoundation.h>
答案 1 :(得分:1)
根据您的描述,您似乎想要UIViewContentModeScaleAspectFill。
UIViewContentModeScaleAspectFit - 将图像放入图像视图中。如果图像小于图像视图,则它将居中。
UIViewContentModeScaleAspectFill - 将填充图像视图内的图像。如果图像小于/大于图像视图,则将缩放图像。
的Apple文档答案 2 :(得分:0)
“是否有可能将UIImageView完美地融入其内容?”是。您的代码尝试设置bounds
的{{1}}。 发声的内容就是将UIImageView
的{{1}}设置为图像的大小。
如果您不熟悉frame
UIImageView
和frame
UIView
之间的差异,请进行一些谷歌搜索;这是一个重要的区别。如果您要设置bounds
的实际尺寸或位置,请使用UIView
,该UIImageView
在包含frame
的{{1}}的坐标空间中运行。如果您希望影响UIView
所包含的观看次数的坐标空间,则可以使用UIImageView
。