如何将UISlider更改为垂直?
问题描述:
我正在为我的应用程序定制UISlider
。我希望滑块处于垂直方向,但默认的UISlider
处于水平方向。我无法找到如何更改UISlider
的方向。如何将UISlider更改为垂直?
如何在XCode中制作垂直滑块?
答
默认情况下,UISlider是水平的( - )。如果您希望使其垂直(|),则必须以编程方式执行此操作,可能需要使用CGAffineTransform
。例如,您可以将此片段添加到viewDidLoad
或任何你认为合适的:
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
答
如果您正在使用自动布局:
在您的viewDidLoad中,尝试:
UIView *superView = self.sizeSlider.superview;
[self.sizeSlider removeFromSuperview];
[self.sizeSlider removeConstraints:self.view.constraints];
self.sizeSlider.translatesAutoresizingMaskIntoConstraints = YES;
self.sizeSlider.transform = CGAffineTransformMakeRotation(M_PI_2);
[superView addSubview:self.sizeSlider];
它确实不能与约束一起工作,所以诀窍是去掉你的uislider的限制。 您可能需要通过设置其框架属性来手动调整它的大小。
答
我有一个问题:
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
,因为我在viewDidLoad方法的代码。相反,我把代码放在ViewDidAppear中,它工作正常。
编辑:它不必在ViewDidAppear,ViewDidLoad工作正常(甚至更好)。您可以禁用自动调整大小,或者为正在旋转的滑块设置约束,以便旋转后大小不会更改。
你好IT的工作,但我想要一个问题上半部分是下来部分是上面了解 –
hardik,只是扭转轮换。即'CGAffineTransformMakeRotation(-M_PI_2)' – izzy