2017-02-27 2 views
0

Salut je suis d'ajouter programmaticaly des vues comme ce problèmeProblème avec des vues programmatiques ajoutés

 let xPos = (self.view.frame.size.width - 200)/2 
     self.headerLabel = UILabel(frame: CGRect(x: xPos, y: 50.0, width: 200.0, height: 100.0)) 
     self.shopButton = UIButton(frame: CGRect(x: xPos, y: 150.0, width: 200.0, height: 40.0)) 
     self.createButton = UIButton(frame: CGRect(x: xPos, y: 230.0, width: 200.0, height: 40.0)) 
     self.orLabel = UILabel(frame: CGRect(x: xPos, y: 200.0, width: 200.0, height: 20.0)) 

est quand je tourne appareil au mode paysage et vice versa mes vues sont alignés sur le côté gauche. Comment puis-je l'empêcher?

+0

Vous pouvez trouver une bonne documentation/après il: http://stackoverflow.com/questions/27473810/how-to-change-layout-constraints-programmatically-on -display-rotation et là https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithConstraintsinInterfaceBuidler.html – Balanced

Répondre

0

Ajouter des contraintes dans votre vue de sa superbe vue à l'aide NSLayoutConstaint

Pour exemple

let horizontalConstraint = NSLayoutConstraint.init(item: view, attribute: .centerX, relatedBy: .equal, toItem: view.superview, attribute: .centerX, multiplier: 1, constant: 1) 
     horizontalConstraint.isActive = true 

     let verticalConstraint = NSLayoutConstraint.init(item: view, attribute: .centerY, relatedBy: .equal, toItem: view.superview, attribute: .centerY, multiplier: 1, constant: 1) 
     verticalConstraint.isActive = true 
0

Je voudrais ajouter ces éléments dans le générateur d'interface si vous le pouvez. Vous pouvez ensuite configurer manuellement vos contraintes, ce qui est beaucoup plus facile que de les ajouter par programmation. La raison pour laquelle vous voyez ce comportement est que vos éléments n'ont aucune contrainte, ils ne changent donc pas d'orientation lorsque l'écran est pivoté.

Découvrez ces liens: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithConstraintsinInterfaceBuidler.html

https://www.raywenderlich.com/115440/auto-layout-tutorial-in-ios-9-part-1-getting-started-2

0

Si vous travaillez sans Storyboards à tout ce que je vous recommande d'utiliser le cadre Neon. Il vous aide à concevoir des vues entières - et aussi à placer des boutons, des images, ... dessus - de façon programmée.

Voir le repo Github suivant: https://github.com/mamaral/Neon