Man*_*One 1 uiimageview uiimage ios ciimage
我已经搜索堆栈溢出太多次,也发布了一个问题,但徒劳无功。我需要在我的拼贴应用程序中实现一个功能,用户可以在其中旋转 uiimage 并将其作为旋转图像移动。知道怎么做吗?如果需要,我会尝试所有这些。最近两天一直在寻找它。
起初我使用 CGAffineTransformMakeRotation(angle) 旋转了 UIImage 的框架。它正在工作,但是在旋转后移动图像时,它会产生失真。那么还有其他方法吗?
编辑:为了清楚起见,旋转角度是自定义的。
检查了一些类似的问题(旋转变换后更改 uiview 大小和如何在 CGAffineTransformIdentity 时调整 UIView 的大小)并阅读有关 CGAffineTransform的官方文档后,我得出了一些简单的结论。下面将解释它们。
当您使用CGAffineTransform具有跟随帧变换的某些对象时,您必须使用一些规则才能获得正确的结果:
如果对象的变换属性相等CGAffineTransformIdentity,则可以CGAffineTransform无限制地更改对象的框架或使用。
如果对象的变换属性不相等,CGAffineTransformIdentity并且您想要更改对象的框架,而无需CGAffineTransform:
a) 将对象变换的值保存到某个本地(或其他类型)变量
b) 将对象的变换属性设置为 CGAffineTransformIdentity
c) 更改对象的框架
d ) 从本地(或其他类型)变量恢复转换值。
CGAffineTransformIdentity并且您想要使用CGAffineTransform,例如new_transform:CGAffineTransformConcat([object transform] , new_transform)获取result_transformresult_transform 遵守这些简单的规则将有助于避免许多问题。
注意:你一定要记住,当你使用CGAffineTransformConcat 所有变换的时候进行累加。例如:如果要将对象从 6 度旋转到 7 度,则必须添加变换旋转到 1 度,而不是 7。否则您将获得旋转 6 + 7 = 13 度。
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |