如何在swift中制作垂直滑块?

如何在swift中制作垂直滑块?,swift,rotation,slider,Swift,Rotation,Slider,我想知道如何在swift中创建垂直滑块 我尝试过使用.transform,然后添加一个旋转,但这返回了一个异常并旋转了整个屏幕。我只需要一个垂直滑块 我想知道是否有人知道在swift中旋转滑块的方法 谢谢假设您正在谈论的是UISlider: 您正朝着正确的方向看,但可能对错误的项应用了仿射变换。。。您应该使用UISlider.transform更改其方向。 以下是工作代码(我确实使用InterfaceBuilder添加了UISlider): 选项1: 在Swift 4中: -M_PI_2不推荐使

我想知道如何在swift中创建垂直滑块

我尝试过使用
.transform
,然后添加一个旋转,但这返回了一个异常并旋转了整个屏幕。我只需要一个垂直滑块

我想知道是否有人知道在swift中旋转滑块的方法


谢谢

假设您正在谈论的是UISlider

您正朝着正确的方向看,但可能对错误的项应用了仿射变换。。。您应该使用UISlider.transform更改其方向。 以下是工作代码(我确实使用InterfaceBuilder添加了UISlider):


选项1:

在Swift 4中:

-M_PI_2不推荐使用,因此请使用Double.PI/2

verticalSlider.transform = CGAffineTransform(rotationAngle: CGFloat(-Double.pi / 2))

选项2:适用于所有目标C和Swift

Key path = layer.transform.rotation.z 
Type     =  String
Value    = -1.570795


大多数Imp注意:键路径前后没有空格使用OOP。如果将此旋转定义为UIView上的扩展,则不仅可以旋转UIView,还可以旋转从UIView继承的所有子类。这当然包括UISlider,但也包括UILabel、UIButton和大约200?其他子类。。。看这里
Key path = layer.transform.rotation.z 
Type     =  String
Value    = -1.570795


意识到继承很好,可以节省大量工作。对于许多要进行的Swift扩展,尝试在类层次结构中将其向上移动可能是一个好主意,如本例所示。

Swift 3您应该使用CGAffineTransform.init(rotationAngle:CGFloat(-M_PI_2))Swift 3,其语法更清晰:
CGAffineTransform(rotationAngle:-CGFloat.PI)
实际上是CGAffineTransform(rotationAngle:-CGFloat.pi/2)甚至更短:
cgpaffinetransform(rotationAngle:-.pi/2)
 extension UIView
 {
    func makeVertical()
    {
         transform = CGAffineTransform(rotationAngle: -CGFloat.pi / 2)
    }
 }

  // usage example:
  sldBoilerTemperature.makeVertical()