comment définir la taille UIView dans la mise en page automatique par programmation swift?

J'en ai fait deux UIView avec Auto Layout l'aide de ce code :

class ViewController: UIViewController {
var view_constraint_V:NSArray = [NSLayoutConstraint]();
var originalValue:CGFloat = 0.0;
var offsetValue:CGFloat = -100;
override func viewDidLoad() {
super.viewDidLoad()
//Do any additional setup after loading the view, typically from a nib.
        var topView = UIView()
topView.setTranslatesAutoresizingMaskIntoConstraints(false)
topView.backgroundColor = UIColor.blackColor()
var bottomView = UIView()
bottomView.setTranslatesAutoresizingMaskIntoConstraints(false)
bottomView.backgroundColor = UIColor.lightGrayColor()
let button   = UIButton()
button.backgroundColor = UIColor.darkGrayColor()
button.setTitle("Click me!", forState: UIControlState.Normal)
button.addTarget(self, action: "buttonAction:", forControlEvents: UIControlEvents.TouchUpInside)
button.setTranslatesAutoresizingMaskIntoConstraints(false)
self.view.addSubview(topView);
self.view.addSubview(bottomView);
bottomView.addSubview(button)
//constraints
        let viewsDictionary = ["top":topView,"bottom":bottomView, "button":button]
//position constraints
        let view_constraint_H:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("H:|-10-[top]-10-|",options: NSLayoutFormatOptions(0),metrics: nil, views: viewsDictionary)
let view_constraint_H2:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("H:|-10-[bottom]-10-|",options: NSLayoutFormatOptions(0),metrics: nil, views: viewsDictionary)
view_constraint_V = NSLayoutConstraint.constraintsWithVisualFormat("V:|-20-[top(bottom)]-[bottom]-10-|", options: NSLayoutFormatOptions.AlignAllLeading, metrics: nil, views: viewsDictionary)
view.addConstraints(view_constraint_H)
view.addConstraints(view_constraint_H2)
view.addConstraints(view_constraint_V)
originalValue = (view_constraint_V[1] as NSLayoutConstraint).constant;
//println((view_constraint_V[1] as NSLayoutConstraint))
        (view_constraint_V[1] as NSLayoutConstraint).constant = offsetValue
//Position button
        let control_constraint_H:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("H:|-30-[button]-30-|", options: NSLayoutFormatOptions(0), metrics: nil, views: viewsDictionary)
let control_constraint_V:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("V:|-30-[button(50)]", options: NSLayoutFormatOptions(0), metrics: nil, views: viewsDictionary)
bottomView.addConstraints(control_constraint_H)
bottomView.addConstraints(control_constraint_V)
}
/**
Example of dynamically changing the constraints when clicking on a button.
*/
func buttonAction(sender:UIButton!)
{
if (view_constraint_V[1].constant == offsetValue) {
(view_constraint_V[1] as NSLayoutConstraint).constant = originalValue
} else {
(view_constraint_V[1] as NSLayoutConstraint).constant = offsetValue
}
}
}

Maintenant, je veux mettre en vue de dessus une taille égale à 1/3 de vue de dessous de la taille par programme mais je ne sais pas comment faire.

Une suggestion pour réduire la mise en page automatique du code réutilisable est d'utiliser PureLayout.
mon ami PureLayout sont pour swift?
Tous Objective-C, les bibliothèques peuvent être utilisées avec swift.
utilisation de l'interface à la place le générateur de code, la création de l'Isu via le code est l'une des plus mal à l'aise choses.

OriginalL'auteur black tiger | 2015-05-24