ios - 旋转 UIKit 元素而不弄乱框架

标签 ios rotation slider uikit

我需要通过其父类(super class)属性转换来旋转 UISlider,方法是通过以下方式更改旋转矩阵:

self.slider.transform = CGAffineTransformMakeRotation(45);

在 UIView 的文档中,我可以看到一条警告:

Warning If this property is not the identity transform, the value of the frame property is undefined and therefore should be ignored.



所以,问题是,我怎样才能在不弄乱框架矩形的情况下旋转标准 UIKit 元素? (我理解的未定义,他们的意思是,完全搞砸了,不仅仅是放大到足以包含整个旋转对象)

最佳答案

基本上,当您在 View 上设置变换时,您需要使用 bounds 和 center 属性来设置其大小和位置。在 View 上设置框架时,UIKit 实际上会在您的 View 上设置边界/中心/变换。

因此,无需设置转换,您就可以像这样设置框架。

self.slider.frame = CGRectMake(10, 20, 300, 50);

使用转换时,您必须这样做:
self.slider.transform = CGAffineTransformMakeRotation(45);
self.slider.bounds = CGRectMake(0, 0, 300, 50);
self.slider.center = CGRectMake(10, 20, 300, 50);

关于ios - 旋转 UIKit 元素而不弄乱框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11116705/

相关文章:

javascript - 使用 jQuery FlexSlider 添加或删除幻灯片

javascript - 使用 javascript 将 slider 停止在最后一张图片处

android - 解析与谷歌云

ios - UILabel不显示用户输入文本

javascript - 如何在不刷新页面的情况下重复此代码?设置间隔?其他?

ios - 使用最短角度旋转 Sprite 节点

android - 旋转 Exoplayer

iOSBetaBuilder + 屏幕闪烁

ios - 如何使用 .xcarchive 文件符号化崩溃日志?

jquery - 用 :before 创建一个箭头