更改UIViewContentModeScaleAspectFill的工作方式

时间:2014-05-23 15:28:17

标签: ios objective-c uiimageview uiimage uiviewcontentmode

此时此设置(例如在UIImageView上)会将UIImage的中心保持在UIImageView和"裁剪"的中心。两边均匀超出边界的边缘。

有没有办法改变这一点?

例如,如果我希望它保持UIImage的上边缘与UIImageView的上边缘对齐,并在缩放等时从底部裁剪掉......

1 个答案:

答案 0 :(得分:1)

一种方法是继续使用UIImageView的自动缩放(UIViewContentModeScaleAspectFit或UIViewContentModeScaleAspectFill,以便方面保持正确), 然后通过应用图层蒙版来删除你不想要的部分。

或者(这就是我要做的),只需用自己想要的裁剪画出图像。

例如,将图片设置为图层的contents,然后设置图层contentsRect(这决定了图片的哪个区域显示为图层' s内容)和contentsGravity(这决定了图像如何固定/缩放到图层的边界)。您可以实时更改这些值(甚至可以设置动画)。

或者,当你想要一个裁剪版本时,只需要输出一个新的图像图形上下文,将图像重新定位到它中,使右边区域以正确的方式重叠上下文,拉出结果图像并显示它。