Swift Xcode使用复选框子类将操作附加到复选框

时间:2015-10-18 07:22:27

标签: swift checkbox

我是新手,因此我很难接受可能非常简单的事情。

我想拥有一周中每一天的复选框,并且能够将其状态切换为标准Apple时钟应用警报重复页面。我正在使用从https://github.com/kenthinson/checkbox/借来的子类来创建一组复选框。所有这些都像故事板中的魅力一样,但现在我正在努力学习如何在视图控制器中引用子类复选框“state”来实际执行某些操作。

所以这是子类:

import UIKit

class checkBox: UIButton {

//images
let checkedImage = UIImage(named: "checkBoxChecked")
let unCheckedImage = UIImage(named: "checkBoxUnchecked")

//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{
            isChecked = false
        }else{
            isChecked = true
        }
    }
}

}

这是一个出口示例:

@IBOutlet weak var sun: checkBox!

这是我准备好追加(工作)的空数组:

var daysArray:[String] = []

以下是一个示例操作:

@IBAction func setSunday(sender: checkBox) {
    if (****what do I do here to retrieve the button state?****) {
        daysArray.append("0")
        print(daysArray) // Check the array is working then delete
    } else {
        daysArray.removeAtIndex(0)
        print(daysArray) // Check the array is working then delete
    }
}

如果我可以使这个工作,那么我可以申请一周中的所有日子,并使用NSUserDefaults使数组的状态持久。 希望你们能帮忙。

1 个答案:

答案 0 :(得分:0)

使用sender.isChecked检索状态:

@IBAction func setSunday(sender: checkBox) {
    if sender.isChecked {
        daysArray.append("0")
        print(daysArray) // Check the array is working then delete
    } else {
        daysArray.removeAtIndex(0)
        print(daysArray) // Check the array is working then delete
    }
}