使用 CGAffineTransform 使用 UIViewContentModeTop 缩放 UIImageView
Posted
技术标签:
【中文标题】使用 CGAffineTransform 使用 UIViewContentModeTop 缩放 UIImageView【英文标题】:Scaling an UIImageView with UIViewContentModeTop using CGAffineTransform 【发布时间】:2013-08-27 11:20:35 【问题描述】:在维护 UIImageView 的 contentMode 时应用多个转换时遇到问题。
我已经用contentMode = UIViewContentModeTop
定义了一个 UIImageView。我的意图是应用比例变换不应该使图像倾斜,而是保持图像的顶部可见。
不幸的是,设置变换后,图像仍然倾斜:
_imageView.transform = CGAffineTransformMakeScale(1.0, 0.5);
据我了解,这应该将图像缩放到一半高度,有效地剪裁图像的底部,但是如前所述,UIImageView 似乎使用了UIViewContentModeScaleToFill
,从而使图像倾斜。
我使用变换而不只是帧操作的原因是我还想对视图应用旋转。
我还在图层上设置了一个自定义锚点可能是相关的:
_imageView.layer.anchorPoint = (CGPoint)0.2, 0.06;
【问题讨论】:
【参考方案1】:我通过不使用变换进行缩放来解决此问题,而是修改边界矩形,这在进行变换时是允许的。使用边界矩形修改大小,正确使用我在视图上设置的内容模式。
【讨论】:
以上是关于使用 CGAffineTransform 使用 UIViewContentModeTop 缩放 UIImageView的主要内容,如果未能解决你的问题,请参考以下文章
使用 CGAffineTransform 使用 UIViewContentModeTop 缩放 UIImageView
我如何使用 CGAffineTransform 进行正确的拖放