我需要通过其超类属性转换来旋转UISlider,方法是通过以下方式更改旋转矩阵:
self.slider.transform = CGAffineTransformMakeRotation(45);
在UIView的文档中,我可以看到一条警告:
警告如果此属性不是标识转换,则为 frame属性未定义,因此应该被忽略。
所以,问题是,如何在不弄乱框架矩形的情况下旋转标准UIKit元素? (通过undefined我理解,他们的意思是,完全混乱,而不仅仅是放大到足以包含整个旋转对象)
答案 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);