web-dev-qa-db-fra.com

Comment définir la largeur et la hauteur dynamiques d'une vue dans l'autolayout sous iOS?

J'ai un UIView dans ma super vue.J'ai défini des contraintes.Maintenant, je veux que la taille de la vue soit différente sur différents appareils.Si je règle la largeur et la hauteur du correctif, le résultat obtenu est incorrect.J'ai essayé rapport hauteur/largeur mais qui rendent une vue trop grande ou trop petite sur plusieurs appareils. 

Je souhaite que la hauteur et la largeur augmentent proportionnellement au même aspect que tous les appareils.Je souhaite une hauteur et une largeur variables de la vue.Veuillez indiquer comment procéder.

Voici l'image enter image description here

Merci d'avance 

12
TechGuy

Utilisez les classes de taille. Il est utile d’avoir différents paramètres pour différents appareils. http://www.raywenderlich.com/83276/beginning-adaptive-layout-tutorialhttps://youtu.be/IwSTXY0awng?t=2m12s

3
Andrew Luca

enter image description hereLe moyen le plus simple consiste à créer une prise de votre contrainte width et height.

Puis changez-le dynamiquement dans viewDidLoad en fonction du téléphone.

Pour vérifier quel téléphone vous pouvez vérifier la hauteur de l'appareil, par exemple 480 pour iPhone 4S, 568pour iPhone 5,5S, etc.

@interface ScoreListViewController (){
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint;
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *heightConstraint;

@end



- (void)viewDidLoad {
[super viewDidLoad];
// Set the value according to your requirement
if(4S){
self.heightConstraint.constant=100;
}

 }
2
Mukesh

Essayez de suivre les captures d’écran ci-dessous:

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

Vous obtiendrez le résultat ci-dessous

enter image description here

2
Nischal Hada

J'ai écrit un blog article sur l'autolayouting pour changer de mise en page de manière dynamique.
Pour chaque taille d’écran, vous pouvez ajouter par programme les contraintes.
Algorithme

  1. Obtenir la taille actuelle de l'appareil
  2. Obtenez les contraintes requises en fonction de la taille de l'appareil
  3. Puis ajouter par programme les contraintes


Changement selon l’orientation

  • Écoutez la notification UIDeviceOrientationDidChangeNotification
  • Ajouter de nouvelles contraintes en fonction de la notification
  • Appelez ensuite setNeedsUpdateConstraints
    Pour plus d'informations et un exemple de code, consultez l'article du blog et this github repo
0
deltaaruna