iphone - 使用 CGAffineTransform 旋转后 UIView 调整大小

标签 iphone objective-c xcode ios ipad

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

我需要实现类似于页面/主题图像处理的结果。我有 uiview,我可以旋转/缩放等等。我在每个角上都有用于调整 View 大小的 handle 。一切正常(缩放/旋转)但是当图像旋转并且我尝试通过移动 handle 更改其大小时一切都出错了,或者图像改变其大小不可预测或者它在屏幕上移动。

如果我能找到一些类似的例子或我能做什么,我将不胜感激。

这是我喜欢的视频。 example

最佳答案

我自己解决过这个问题。我非常有信心地说,没有简单的方法可以做到这一点,您只需要拿起笔和纸,深入研究一些相当乏味的三角函数!

首先要注意的是 View 的 frame 属性超出了范围(即当对其应用旋转变换时其值未定义),因此您必须改用 bounds center 属性。然后你只需要根据当前角度计算新的边界和中心位置。单调乏味是因为知道 bounds 不再与水平轴和垂直轴对齐,而 center 坐标当然是,因此需要笔和纸。对于每个句柄,您的计算会略有不同,但是您几乎可以只复制一个句柄的代码并更改一些加号/减号。

说实话,一旦你勇敢地做出了决定,这并不算太糟糕。我自己的实现限制了正在调整大小的 View 的大小和宽度,这是最难的一点。让事物按照用户期望的方式运行可能需要一些工作,但这是值得的。

关于iphone - 使用 CGAffineTransform 旋转后 UIView 调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587168/

相关文章:

ios - 在 ScrollView 中调整了 UITableView 的大小,内容 View 未调整大小

iphone - 使用 UIImagePickerController 录制视频

ios - 过渡不适用于 SwiftUI 中的路由器

iPhone 操作系统 : how to programmatically differentiate iPad 3G from iPad Wi-Fi?

ios - 将 RACCommand 组合成一个共同结果的最佳方法是什么?

Swift 3 在页面 View Controller 中嵌入按钮

iphone - Objective-C:在哪里可以看到使用 @synthesize 生成的 setter/getter 方法生成的代码?

objective-c - If 和 Else if 语句

ios - 发现多个名为 'tag' 的方法具有不匹配的结果、参数类型或属性

ios - Cordova iOS : xcrun can't find "PackageApplication" after xcode update