如何更改UISlider垂直?

我正在为我的应用程序定制一个UISlider 。 我希望滑块处于垂直方向,但默认的UISlider处于水平方向。 我找不到如何改变UISlider的方向。

如何在XCode中创build垂直滑块?

默认情况下,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工作正常(甚至更好)。 您可以禁用自动resize,或为正在旋转的滑块设置约束,以便旋转后的大小不会更改。