作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 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/
我是一名优秀的程序员,十分优秀!