Je veux mettre UISlider
dans verticalement. Je n'en ai aucune idée, alors aidez-moi, s'il vous plaît.
Vous devez faire cette programmation. En supposant que votre UISlider est lié à une variable appelée slider
, ajoutez ce code dans votre méthode viewDidLoad dans ViewController.m:
- (void)viewDidLoad {
[super viewDidLoad];
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI * 0.5);
slider.transform = trans;
}
Faites-moi savoir si vous avez besoin d'aide supplémentaire à ce sujet ..
Depuis Xcode 4.2, vous pouvez trier de faire la même chose dans Interface Builder.
Malheureusement, il apparaîtra toujours en horizontal dans Interface Builder.
Mais vous pouvez positionner le centre sans avoir besoin de créer une classe personnalisée. Cela peut donc être utile dans certains cas. L'effet est le même que le code de ravinsp.
Swift 3:
slider.transform = slider.transform.rotated(by: CGFloat(0.5 * Float.pi))
// Utilise 1.5 pour inverser l'ombre du curseur si tu veux
Si vous travaillez avec des mises en page automatiques:
Dans votre viewDidLoad, essayez:
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];
Il ne fonctionne pas avec des contraintes, l’astuce consiste donc à supprimer les contraintes pour votre utilisateur . Vous devrez peut-être le redimensionner manuellement en définissant sa propriété frame.
Utiliser un observateur IBOutlet et un observateur .. Si vous voulez que le maximum soit au bas, divisez pi par positif
@IBOutlet weak var slider: UISlider! {
didSet {
slider.transform = CGAffineTransform(rotationAngle: .pi / -2)
}
}