Je me demandais comment créer un curseur vertical dans Swift.
J'ai essayé d'utiliser .transform
, puis d'ajouter une rotation, mais cela renvoyait une exception et faisait pivoter tout l'écran. J'ai juste besoin d'un curseur vertical.
Je me demandais si quelqu'un connaissait un moyen de faire pivoter un curseur dans Swift?
Merci
En supposant que vous parlez de UISlider :
Vous cherchiez dans la bonne direction mais avez probablement appliqué AffineTransformation au mauvais élément ... Vous devez utiliser UISlider.transform pour modifier son orientation. Voici du code de travail (j'ai ajouté UISlider en utilisant InterfaceBuilder):
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var verticalSlider: UISlider!{
didSet{
verticalSlider.transform = CGAffineTransform(rotationAngle: CGFloat(-M_PI_2))
}
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Options 1:
Dans Swift 4:
-M_PI_2 est obsolète. Utilisez Double.pi/2
verticalSlider.transform = CGAffineTransform(rotationAngle: CGFloat(-Double.pi / 2))
OU
Options 2: pour tout Objectif C et Swift
Key path = layer.transform.rotation.z
Type = String
Value = -1.570795
La plupart des diablotins Note: avant et après le raccourci clavier Pas d'espace
Utilisez la POO. Si vous définissez cette rotation en tant qu'extension sur UIView, vous pouvez faire pivoter non seulement UIView, mais également toutes les sous-classes héritées de UIView. Cela inclut bien sûr UISlider, mais aussi UILabel, UIButton et environ 200? autres sous-classes ... voir ici liste des sous-classes pour UIView
extension UIView
{
func makeVertical()
{
transform = CGAffineTransform(rotationAngle: -CGFloat.pi / 2)
}
}
// usage example:
sldBoilerTemperature.makeVertical()
C'est bien d'être conscient de l'héritage, cela économise beaucoup de travail. Pour de nombreuses extensions Swift, il peut être judicieux d'essayer de le déplacer vers le haut dans la hiérarchie des classes, comme dans cet exemple.