如何把UISlider垂直放置?

问题描述:

我想把UISlider垂直。我不知道这个,所以请帮助我。如何把UISlider垂直放置?

+3

这种反转滑块的影子是这个问题的重复昨天问:http://*.com/questions/ 2369926 /如何使我垂直uislider – 2010-03-04 11:59:33

你必须做这个programaticaly。假设你UISlider被绑定到一个叫slider变量,在您的viewDidLoad方法添加此代码ViewController.m:

- (void)viewDidLoad { 

    [super viewDidLoad]; 

    CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI * 0.5); 
    slider.transform = trans; 
} 

让我知道如果你需要有这方面的更多帮助..

+40

这将minimumValue结束在顶部。使用M_PI * -0.5将minimumValue结束放置在底部。 – 2010-10-28 18:39:04

+0

有用的笔记。这是最常见的情况。感谢chrispix。 – ravinsp 2010-11-01 04:36:57

+2

您还可以使用-M_PI_2 – 2013-07-10 18:33:23

作为的Xcode 4.2,你可以在Interface Builder中做排序

  • 创建一个滑块
  • 显示“身份检查”
  • 添加“用户自定义运行属性”
  • 设置关键路径“layer.transform.rotation.z”,类型为“字符串”(“数字”将不允许使用浮点值)(自Xcode 5以来可能)以及值为“-1.570795”(-π/ 2)。

不幸的是,它在界面构建器中仍然显示为水平。

但是,您可以定位中心,不需要创建自定义类,因此在某些情况下它可能会有用。效果与ravinsp的代码相同。

+0

其实你可以用逗号(而不是点)将浮点数放入数字。 – user500 2014-02-20 06:52:36

+0

比接受的,基于代码的答案更清洁,恕我直言。 – user1021430 2015-11-16 22:03:45

如果您有自动布局工作:

在您的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。 您可能需要通过设置其框架属性来手动调整它的大小。

斯威夫特3:

slider.transform = slider.transform.rotated(by: CGFloat(0.5 * Float.pi)) 

//使用1.5如果你想