gpt4 book ai didi

ios - 旋转UIImage并移动

转载 作者:行者123 更新时间:2023-12-01 17:54:45 25 4
gpt4 key购买 nike

我搜索了堆栈溢出太多次,还发布了一个问题,但徒劳。我需要在我的拼贴应用程序中实现一个功能,用户可以旋转uiimage并将其作为旋转的图像进行移动。有什么想法吗?如果需要,我会尝试所有的方法。最近两天正在寻找它感到沮丧。

首先,我使用CGAffineTransformMakeRotation(angle)旋转了UIImage的框架。它可以工作,但是旋转后移动图像时会产生变形。那么还有其他方法吗?

编辑:
说清楚一点
旋转角度是自定义的。

最佳答案

在研究了一些类似的问题(Change uiview size after rotation transformHow to resize the UIView when CGAffineTransformIdentity)并阅读了Official documentation about CGAffineTransform之后,我得出了一些简单的结论。下面将解释它们。

当您将CGAffineTransform用于具有后续帧转换的某些对象时,必须使用一些规则以获得正确的结果:

  • 如果对象的transform属性等于CGAffineTransformIdentity,则可以无限制地更改对象的框架或使用CGAffineTransform
  • 如果对象的变换属性不等于CGAffineTransformIdentity,并且您想更改不带CGAffineTransform的对象的框架:
    a)将对象转换的值保存到某个局部(或其他类型)变量中
    b)将对象的转换属性设置为CGAffineTransformIdentity
    c)改变对象的框架
    d)从局部(或其他类型)变量恢复变换值。
  • 如果对象的transform属性不等于CGAffineTransformIdentity,而您想使用CGAffineTransform,例如new_transform:
    a)使用CGAffineTransformConcat([object transform] , new_transform)获得result_transformb)将对象的转换值设置为result_transform

  • 遵守这些简单规则将有助于避免许多问题。

    注意:您必须记住,当使用 CGAffineTransformConcat时,所有转换都累加。例如:如果要将对象从6度旋转到7度,则必须将变换旋转添加到1度,而不是7。否则,将获得旋转6 + 7 = 13度。

    关于ios - 旋转UIImage并移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19837512/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com