这是我的第一个问题,大家好:)
我需要实现类似于页面/主题图像处理的结果。我有 uiview,我可以旋转/缩放等等。我在每个角上都有用于调整 View 大小的 handle 。一切正常(缩放/旋转)但是当图像旋转并且我尝试通过移动 handle 更改其大小时一切都出错了,或者图像改变其大小不可预测或者它在屏幕上移动。
如果我能找到一些类似的例子或我能做什么,我将不胜感激。
这是我喜欢的视频。 example
最佳答案
我自己解决过这个问题。我非常有信心地说,没有简单的方法可以做到这一点,您只需要拿起笔和纸,深入研究一些相当乏味的三角函数!
首先要注意的是 View 的 frame
属性超出了范围(即当对其应用旋转变换时其值未定义),因此您必须改用 bounds
和 center
属性。然后你只需要根据当前角度计算新的边界和中心位置。单调乏味是因为知道 bounds
不再与水平轴和垂直轴对齐,而 center
坐标当然是,因此需要笔和纸。对于每个句柄,您的计算会略有不同,但是您几乎可以只复制一个句柄的代码并更改一些加号/减号。
说实话,一旦你勇敢地做出了决定,这并不算太糟糕。我自己的实现限制了正在调整大小的 View 的大小和宽度,这是最难的一点。让事物按照用户期望的方式运行可能需要一些工作,但这是值得的。
关于iphone - 使用 CGAffineTransform 旋转后 UIView 调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587168/