Я новичок в Swift и смущен тем, как программно добавлять пользовательский класс к кнопке. Я создал пользовательский класс и могу добавить его с помощью раскадровки. Он отлично работает, но как это сделать программно?Программно добавить класс в UIbutton в Swift
Могу ли я использовать класс CheckBox вместо UIButton или я по-прежнему необходимо использовать UIButton и добавить класс?
Класс
class CheckBox: UIButton {
//images
let checkedImage = UIImage(named: "checked_checkbox") //as UIImage!
let uncheckedImage = UIImage(named: "unchecked_checkbox") //as UIImage!
//bool property
var isChecked:Bool = false{
didSet{
if isChecked == true {
self.setImage(checkedImage, forState: .Normal)
}else {
self.setImage(uncheckedImage, forState: .Normal)
}
}
}
override func awakeFromNib() {
self.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)
self.isChecked = false
}
func buttonClicked(sender:UIButton) {
if(sender == self){
if isChecked == true {
println("setting to false")
isChecked = false
}else{
println("setting to true")
isChecked = true
}
}
}
}
Добавление класса к контроллеру вида
override func viewDidLoad() {
super.viewDidLoad()
let checkBox = CheckBox()
checkBox.backgroundColor = UIColor.blueColor()
self.view.addSubview(checkBox)
checkBox.setTranslatesAutoresizingMaskIntoConstraints(false)
self.view.addConstraint(NSLayoutConstraint(item: checkBox, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 50))
self.view.addConstraint(NSLayoutConstraint(item: checkBox, attribute: .Top, relatedBy: .Equal, toItem: self.view, attribute: .Top, multiplier: 1.0, constant: 50))
}
Вы можете использовать свой класс Checkbox вместо UIButton в своем коде –
@TienDinh Спасибо! Моя проблема должна быть с моим классом тогда или с тем, как я добавляю класс Checkbox к контроллеру представления. Я обновил вопрос, включив viewDidLoad и класс. Я что-то упускаю из-за различий в том, как добавлять UIButton программно и в раскадровку? – Oakland510
«Моя проблема должна быть с моим классом тогда или с тем, как я добавляю класс Checkbox в контроллер вида« Но @ Oakland510, вы не объяснили, что ваша проблема _is_! Не отображается ли флажок в интерфейсе? Что происходит или не происходит, что проблематично? – matt