Acceso a ancho UIView en time de ejecución

En Swift, ¿cómo obtengo el ancho (o altura) en time de ejecución, de una vista UIV que se crea mediante progtwigción utilizando restricciones de layout automático?

He intentado view1.frame.size.width y view1.frame.width , pero ambos devuelven 0 .

He estado siguiendo un tutorial de layout automático por MakeAppPie y agregué view1.layer.cornerRadius = view1.bounds.width/2 como abajo, pero esto no tuvo efecto, así que hice un po en view1.bounds.width y obtuve 0 :

 class ViewController: UIViewController { func makeLayout() { //Make a view let view1 = UIView() view1.setTranslatesAutoresizingMaskIntoConstraints(false) view1.backgroundColor = UIColor.networkingColor() //Make a second view let view2 = UIView() view2.setTranslatesAutoresizingMaskIntoConstraints(false) view2.backgroundColor = UIColor(networking: 0.75, green: 0.75, blue: 0.1, alpha: 1.0) //Add the views view.addSubview(view1) view.addSubview(view2) //--------------- constraints //make dictionary for views let viewsDictionary = ["view1":view1,"view2":view2] //sizing constraints //view1 let view1_constraint_H:Array = NSLayoutConstraint.constraintsWithVisualFormat("H:[view1(>=50)]", options: NSLayoutFormatOptions(0), metrics: nil, views: viewsDictionary) let view1_constraint_V:Array = NSLayoutConstraint.constraintsWithVisualFormat("V:[view1(50)]", options: NSLayoutFormatOptions(0), metrics: nil, views: viewsDictionary) view1.addConstraints(view1_constraint_H) view1.addConstraints(view1_constraint_V) //view2 let view2_constraint_H:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("H:[view2(50)]", options: NSLayoutFormatOptions(0), metrics: nil, views: viewsDictionary) let view2_constraint_V:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("V:[view2(>=40)]", options: NSLayoutFormatOptions(0), metrics: nil, views: viewsDictionary) view2.addConstraints(view2_constraint_H) view2.addConstraints(view2_constraint_V) //position constraints //views let view_constraint_H:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("H:|-100-[view2]", options: NSLayoutFormatOptions(0), metrics: nil, views: viewsDictionary) let view_constraint_V:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("V:|-136-[view1]-100-[view2]-100-|", options: NSLayoutFormatOptions.AlignAllTrailing, metrics: nil, views: viewsDictionary) view.addConstraints(view_constraint_H) view.addConstraints(view_constraint_V) view1.layer.cornerRadius = view1.bounds.width/2 } override func viewDidLoad() { super.viewDidLoad() func supportedInterfaceOrientations() -> Int { return Int(UIInterfaceOrientationMask.All.rawValue) } // Do any additional setup after loading the view, typically from a nib. view.backgroundColor = UIColor(networking: 0.9, green: 0.9, blue: 1, alpha: 1.0) makeLayout() } } 

Agregue esto y usted está listo para ir:

 override func viewDidLayoutSubviews() { println(self.view1.frame.size) } 

Puedes mirar el ancho o la altura a tu gusto.

Solo una cosa sobre estos campos:

 self.view1.frame.size.width self.view1.frame.size.height 

El tamaño del dispositivo del usuario real es solo si la vista se ha dibujado en la pantalla; de lo contrario, son los que usted los haya configurado como en el guión gráfico. Entonces, si intentas realizar algún tipo de cálculo antes de dibujar la vista, ¡tendrás que calcular el ancho o la altura de otra manera!

solo puedes usar esto

 self.view1.frame.size.width self.view1.frame.size.height