旋转UIKit元素而不会弄乱框架

时间:2012-06-20 09:36:36

标签: ios rotation slider uikit

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

self.slider.transform = CGAffineTransformMakeRotation(45);

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

  

警告如果此属性不是标识转换,则为   frame属性未定义,因此应该被忽略。

所以,问题是,如何在不弄乱框架矩形的情况下旋转标准UIKit元素? (通过undefined我理解,他们的意思是,完全混乱,而不仅仅是放大到足以包含整个旋转对象)

1 个答案:

答案 0 :(得分:0)

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

因此,如果不设置变换,您可以像这样设置帧。

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);