根据我的iPad应用程序要求,我要垂直显示UISlider.
我使用的是iOS7编译器,部署目标是iOS6.
在故事板上我添加了宽度为600像素的水平UISlider.我在视图控制器中创建了IBOutlet.我没有设置任何自动布局限制.我正在使用以下代码进行旋转并使其垂直.
self.slider.transform = CGAffineTransformMakeRotation(M_PI_2);
在旋转之前和之后,我打印滑块的框架尺寸是正确的.但滑块看起来不合适.它只显示中心的旋钮.如何旋转UISlider?
我让它以这种方式工作:
在viewDidLoad:
我补充说
[self.slider removeConstraints:self.slider.constraints]; [self.slider setTranslatesAutoresizingMaskIntoConstraints:YES];
所以在旋转滑块之前调用它
self.slider.transform=CGAffineTransformRotate(self.slider.transform,270.0/180*M_PI);
并且无需删除并重新添加到superview.
我有一个垂直滑块使用iOS 8和Xcode 6,故事板中只有3个约束和一行代码.这是界面的裁剪屏幕截图:
垂直滑块和旁边的UIImageView之间有3个约束:
vSlider.Center Y =图像View.Center Y.
vSlider.Width = Image View.Height
vSlider.Center X =图像View.Trailing + 16
当然,一行代码是:
self.vSlider.transform = CGAffineTransformMakeRotation(-M_PI_2);
在Xcode 6中的故事板中设置这些约束很容易,但我认为在代码中编写这些约束以支持iOS 7或6应该很简单.