web-dev-qa-db-fra.com

Comment puis-je faire un curseur vertical en rapide?

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

11
cross

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.
    }


}
26
CryingHippo

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

 enter image description here

La plupart des diablotins Note: avant et après le raccourci clavier Pas d'espace

0
Anup Gupta

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.

0
Ted van Gaalen