繁体   English   中英

使用CGAffineTransform旋转后调整UIView的大小

[英]UIView resizing after rotation with CGAffineTransform

这是我的第一个问题,向大家问好:)

我需要获得类似于页面/主题图像处理的结果。 我有可以旋转/缩放等的uiview。 我在每个角落都有用于调整视图大小的手柄。 一切正常(缩放/旋转),但是当图像旋转时,我尝试通过移动手柄来更改其大小时,一切都会出错,或者图像更改其大小无法预测,或者在屏幕上四处移动。

在任何可以找到类似示例或可以做什么的方向或建议中,我都将不胜感激。

这是我想要得到的视频。

我自己已经解决了这个问题。 我非常有信心地说,没有简单的方法可以做到这一点,您只需要拿起笔和纸,然后浸入一些相当繁琐的三角学中即可!

首先要注意的是,视图的frame属性超出范围(即,当对其应用旋转变换时,其值是未定义的),因此您必须改为使用boundscenter属性。 然后,您只需要根据当前角度计算新的边界和中心位置。 繁琐的工作使人们知道bounds不再与水平和垂直轴对齐,而center坐标当然也要对齐,因此需要笔和纸。 每个句柄的计算都将略有不同,但是您几乎可以通过复制一个句柄的代码并更改一些加/减号来摆脱困境。

坦白说,实际上,一旦您勇于做出决定,这还不错。 我自己的实现限制了要调整大小的视图的大小和宽度,这是最难的一点。 使事情表现出用户期望的状态可能需要一些工作,但这是值得的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM