43 votes

comment mettre UISlider vertical?

Je veux mettre Uislider dans verticaly.Je n'ai aucune idée à ce sujet. Alors, aidez-moi, s'il vous plaît.

105voto

ravinsp Points 1456

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

30voto

nschum Points 3621

Comme de Xcode 4.2, vous pouvez trier de faire de même dans Interface Builder.

  • Créer un curseur
  • Spectacle "l'Identité de l'Inspecteur"
  • Ajouter un "Défini par l'Utilisateur d'Exécution de l'Attribut"
  • Définissez la clé de la "couche.transformer.de rotation.z", le type "String" ("Nombre" ne permet pas de valeurs à virgule flottante) (possible depuis Xcode 5) et la valeur "-1.570795" (-π/2).

Malheureusement, il apparaîtra toujours à l'horizontale dans Interface Builder.

Mais vous pouvez positionner le centre et n'ont pas besoin de créer une classe personnalisée, de sorte qu'il pourrait être assez utile dans certains cas. L'effet est le même que ravinsp du code.

4voto

Antzi Points 1251

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];
 

Cela ne fonctionne pas avec des contraintes, le truc est donc de supprimer les contraintes pour votre utilisateur. Vous devrez peut-être le redimensionner manuellement en définissant sa propriété frame.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X