Snapkit: Changer les priorités

Créé le 30 janv. 2015  ·  3Commentaires  ·  Source: SnapKit/SnapKit

Je ne pouvais pas comprendre comment changer la priorité d'une contrainte déjà installée.

Changer la priorité d'un NSLayoutConstraint est une opération peu coûteuse, et utiliser une combinaison de priorités et .LessThanOrEqual + .GreaterThanOrEqual pour les animations est ce que suggère Apple.

Il peut même être agréable d'ajouter un emballage pour cela. tu installerais

x ≦ 40
x ≧ 40 with priority P
x ≧ 20 with priority P + 1

et vous pourrez alors basculer x entre 40 et 20 en changeant la priorité sur la dernière contrainte entre P - 1 et P + 1 .

enhancement

Commentaire le plus utile

@danielegert, la branche de développement prend désormais en charge la mise à jour des priorités :

var constraint: Constraint? = nil
view.snp_makeConstraints { (make) -> Void in
    constraint = make.edges.equalTo(UIEdgeInsetsMake(10,10,10,10)).priorityHigh()
}
constraint?.updatePriorityLow()

Tous les 3 commentaires

Il est probablement préférable d'autoriser la modification des priorités via snp_updateConstraints . Je vais voir ce que cela implique et si cela a des implications.

@danielegert, la branche de développement prend désormais en charge la mise à jour des priorités :

var constraint: Constraint? = nil
view.snp_makeConstraints { (make) -> Void in
    constraint = make.edges.equalTo(UIEdgeInsetsMake(10,10,10,10)).priorityHigh()
}
constraint?.updatePriorityLow()

Salut @robertjpayne !
J'essaie de mettre à jour la priorité comme indiqué dans le dernier commentaire.
Mais j'ai cette erreur :

Screen Shot 2020-07-22 at 3 17 00 PM

Quel semble être le problème? Utilisation de Snapkit 4.0.0

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

swiftli picture swiftli  ·  9Commentaires

jagdish24 picture jagdish24  ·  3Commentaires

alexpersian picture alexpersian  ·  4Commentaires

chengkaizone picture chengkaizone  ·  3Commentaires

phongle6893 picture phongle6893  ·  4Commentaires