我想在UIImageView
中显示各种尺寸图像的缩略图。如果图片太大而无法放入UIImageView
,我只希望显示适合UIImageView
的照片数量,原始图像的中心位于UIImageView
的中心1}}。
我目前正在设置imageView.clipsToBounds = YES;
和imageView.contentMode = UIViewContentModeCenter;
。这几乎是有效的,除了UIImageView
层中有少量看似填充的内容。当我尝试添加角半径时,我可以看到角落没有完全圆角。
当我将imageView.contentMode
作为默认值时,图像的两侧没有填充,但图像缩放奇怪,而不是我想要的。
为什么我会在UIViewContentModeCenter
中遇到此问题,是否有办法解决此问题?如果没有,我如何动态裁剪我的图像,这样我就不必使用UIViewContentModeCenter
,而只显示适合UIImageView
的图像的中心部分?
以下是imageView.contentMode = UIViewContentModeCenter
视图的外观。看看左侧和右侧是否有额外的填充,但是当我记录imageView
的宽度和x原点时,它们看起来与上面的标签相同。
以下是与上述完全相同的代码,但使用imageView.contentMode
的默认设置。看看没有添加填充,但图像是扭曲的。
答案 0 :(得分:3)
UIViewContentModeCenter保持imageView的比例,因此,当您显示它时,可以显示填充,因为图像的高度大于宽度,反之亦然。反之。
默认的contentMode是UIViewContentModeScaleToFill,因此当您使用它时,图像会在每个方向展开以填充imageView。这就是为什么你没有看到任何填充。
如果要填充imageView并保持图像比例,则应使用imageView.contentMode = UIViewContentModeScaleAspectFill
希望有所帮助
答案 1 :(得分:0)
我看到有些人在左右两侧切断了你的UIImageView。 UIImageView的宽度(使用UIViewContentModeCenter)低于正常值。我对UIViewContentModeCenter
的问题不确定。
但是有一些方法可以解决:
使用imageView.contentMode = UIViewContentModeCenter;
和cornerRadius UIView将UIImageView添加到UIView。
为UIImageView使用掩码:How to Mask an UIImageView
希望这有帮助。