gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:59:18 24 4
gpt4 key购买 nike

我是 Swift 新手,所以我对一些可能非常简单的事情感到困惑。

我希望一周中的每一天都有复选框,并且能够像标准 Apple 时钟应用程序闹钟重复页面一样切换其状态。我正在使用借自 https://github.com/kenthinson/checkbox/ 的子类创建一组复选框。所有这些都在 Storyboard中发挥作用,但现在我正在努力解决如何在 View Controller 中引用子类复选框“状态”来实际执行某些操作。

所以这是子类:

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
}
}
}

}

这是一个 socket 示例:

@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 使数组的状态持久化。希望大家能够帮忙。

最佳答案

使用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
}
}

关于Swift Xcode 使用复选框子类将操作附加到复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33195368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com