2014-07-09 8 views
5

Gibt es eine Möglichkeit, UIView Breite und Höhe mit NSLayoutConstraints festzulegen? i zum Beispiel die folgende Einschränkung SetupVisuelle Formatierungssprache, Beschränkung der Tastenbreite und Höhe

subView.setTranslatesAutoresizingMaskIntoConstraints(false); 
     let cons:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("[subView(99)]", options:nil, metrics: nil, views: ["subView":subView]); 
     self.view.addConstraints(cons); 

dies nur Breite setzt, wie auch eine Höhe hinzufügen?

Antwort

11

zwei mögliche Optionen:

[view setTranslatesAutoresizingMaskIntoConstraints:NO]; 
NSArray* vConstraints = [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[view(25)]|" options:0 metrics:nil views:view]]; 
[parentView addConstraints:vConstraints]; 

oder

NSLayoutConstraint* vConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0 constant:25]; 
[parentView addConstraint:vConstraint]; 
5

Für vertikale Layouts, fügen Sie einfach V: zu Beginn des VFL string:

subView.setTranslatesAutoresizingMaskIntoConstraints(false); 

    let horizontalCons:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("[subView(99)]", options:nil, metrics: nil, views: ["subView":subView]); 
    let veritcleCons:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("V:[subView(50)]", options:nil, metrics: nil, views: ["subView":subView]); 

    self.view.addConstraints(horizontalCons); 
    self.view.addConstraints(veritcleCons);