我需要通过其父类(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/