0

je veut faire un bouton de fermeture comme celui-ci,iOS Autolayout contraintes par programmation à l'aide VFL

enter image description here

  • j'ai essayé de bouton pin, mais le bouton a été Shrinked ou disparu ici était code,

Shrinked

[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[btnClose(==10)]-|" 
                     options:NSLayoutFormatAlignAllCenterY 
                     metrics:nil 
                      views:NSDictionaryOfVariableBindings(btnClose)]]; 

erreur a disparu avec

[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[btnClose(==-10)]-|" 
                     options:NSLayoutFormatAlignAllCenterY 
                     metrics:nil 
                      views:NSDictionaryOfVariableBindings(btnClose)]]; 
  • La vue bleu est également définie à l'aide autolayout et il fonctionne très bien dans tous les écrans.

Quelles contraintes dois-je appliquer pour prendre en charge le bouton de fermeture dans tous les périphériques comme indiqué dans l'image.

Répondre

0

Vous devez fournir les contraintes horizontales et verticales (si 10 et 0 sont des espaces en haut et à droite):

[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[btnClose]-0-|" 
                     options:0 
                     metrics:nil 
                      views:NSDictionaryOfVariableBindings(btnClose)]]; 

[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-10-[btnClose]" 
                     options:0 
                     metrics:nil 
                      views:NSDictionaryOfVariableBindings(btnClose)]]; 

Vous n'avez pas besoin de spécifier les dimensions du bouton - ils seront déduits du contenu, dans votre cas taille d'image