目前,此设置(例如在 UIImageView 上)将保持中心的中心UIImage
在中心UIImageView
并“裁剪”两侧均等地超出边界的边缘。
有没有办法改变这一点?
例如,如果我想让它的顶部边缘UIImage
与顶部边缘对齐,UIImageView
并在缩放时从底部剪掉等等......
目前,此设置(例如在 UIImageView 上)将保持中心的中心UIImage
在中心UIImageView
并“裁剪”两侧均等地超出边界的边缘。
有没有办法改变这一点?
例如,如果我想让它的顶部边缘UIImage
与顶部边缘对齐,UIImageView
并在缩放时从底部剪掉等等......
一种方法是继续使用 UIImageView 的自动缩放(UIViewContentModeScaleAspectFit 或 UIViewContentModeScaleAspectFill,以使方面保持正确),然后通过应用图层蒙版来删除不需要的部分。
或者(这就是我会做的),只需自己绘制具有所需裁剪的图像。
例如,将图像设置contents
为图层的,然后设置图层的contentsRect
(这决定了图像的哪个区域显示为图层的内容)和contentsGravity
(这决定了图像如何固定/缩放到图层的边界)。您可以实时更改这些值(甚至是动画)。
或者,当您想要一个裁剪版本时,只需抽出一个新的图像图形上下文,将图像重新定位到其中,以便正确的区域以正确的方式与上下文重叠,拉出结果图像并显示它。