ios - Creating custom Button in Swift with Visual Layout Constraints -


    //signup button     let signupbutton = uibutton.buttonwithtype(uibuttontype.system) as! uibutton     signupbutton.settranslatesautoresizingmaskintoconstraints(false)     signupbutton.setbackgroundimage(uiimage(named: "signupbutton"), forstate: .normal)     signupbutton.settranslatesautoresizingmaskintoconstraints(false)     signupbutton.settitlecolor(uicolor(red: 1, green: 1, blue: 1, alpha: 1), forstate: .normal)     signupbutton.settitle(nslocalizedstring("sign up", comment: ""), forstate: .normal)     // align signupbutton top , bottom     signupbutton.addconstraints(nslayoutconstraint.constraintswithvisualformat("v:|-464.5-[signupbutton]-142.5-|", options: .directionleadingtotrailing, metrics: nil, views: ["signupbutton": signupbutton]))      // align signupbutton left , right     signupbutton.addconstraints(nslayoutconstraint.constraintswithvisualformat("h:|-196-[signupbutton]-30-|", options: .directionleadingtotrailing, metrics: nil, views: ["signupbutton": signupbutton]))     self.view.addsubview(signupbutton) 

this have, , button created when comment out constraints, constraints need place these in correct positions.

you have add signupbutton subview before adding constraints, , constraints should added view contains signupbutton, self.view in case. also, key in views dictionary signupbutton (starting lowercase), in format string using signupbutton (starting uppercase).

let signupbutton = uibutton.buttonwithtype(uibuttontype.system) as! uibutton signupbutton.settranslatesautoresizingmaskintoconstraints(false) signupbutton.setbackgroundimage(uiimage(named: "signupbutton"), forstate: .normal) signupbutton.settranslatesautoresizingmaskintoconstraints(false) signupbutton.settitlecolor(uicolor(red: 1, green: 1, blue: 1, alpha: 1), forstate: .normal) signupbutton.settitle(nslocalizedstring("sign up", comment: ""), forstate: .normal)  self.view.addsubview(signupbutton)  self.view.addconstraints(nslayoutconstraint.constraintswithvisualformat("v:|-464.5-[signupbutton]-142.5-|", options: .directionleadingtotrailing, metrics: nil, views: ["signupbutton": signupbutton])) self.view.addconstraints(nslayoutconstraint.constraintswithvisualformat("h:|-196-[signupbutton]-30-|", options: .directionleadingtotrailing, metrics: nil, views: ["signupbutton": signupbutton])) 

Comments