我有一个要求,我需要实现该功能来重新调整大小,旋转和移动视图。我已经实现了所有这三个功能,但是我在过去一周内遇到了一个问题我无法解决它。
如果我尝试通过在应用CGAffineTransformRotate后拖动其右角来调整视图大小,则视图框架将进入不可预测状态。后来我才知道这个问题
如果transform属性不是identity变换,则此属性的值未定义,因此应忽略。
我看到一个应用程序实现了我想要实现的相同功能。在该应用程序中,我们可以在旋转后调整视图大小。
如何在应用CGAffineTransformRotate后拖动右角来调整视图大小
我在iOS应用程序开发方面没有太多经验,如果有任何人解决我的问题,过去一周我就会遇到这个问题,我将非常感激。
我的示例代码
答案 0 :(得分:2)
documentation清楚地说:
**如果transform属性不是identity变换,则此属性的值是未定义的,因此应该被忽略。
如果transform属性包含非标识变换,则frame属性的值是未定义的,不应修改。在这种情况下,您可以使用center属性重新定位视图,并使用bounds属性调整大小。**
所以,只需更改touchesMoved中的以下行:
testVw.frame = CGRectMake(testVw.frame.origin.x, testVw.frame.origin.y,touchPoint.x + deltaWidth, touchPoint.y + deltaWidth);
为:
testVw.bounds = CGRectMake(testVw.bounds.origin.x, testVw.bounds.origin.y,touchPoint.x + deltaWidth, touchPoint.y + deltaWidth);
您的代码将完美无缺。
另外,添加一些边界条件。