我有一组基本的按钮,我想根据用户是否按下了“shift”类型的单独按钮来更改功能和外观。
@IBOutlet var shiftBtn: UIButton!
@IBAction func shiftBtn(_ sender: UIButton) {
changeLookOfsomeBtns() /* ?? */
}
@IBOutlet var someBtns: [UIButton]!
@IBAction func someBtns(_ sender: UIButton) {
if shiftBtn.selected == true {
doSomething()
} else if shiftBtn.selected == false {
doSomethingElse()
这是正确的方法吗?我坚持应用什么技术来更改 someBtns 的功能选项和图像。
谢谢!
最佳答案
这里:
if shiftBtn.selected == true {
doSomething()
} else if shiftBtn.selected == false {
doSomethingElse()
}
您似乎正在检查按钮上的(不存在的)属性来决定要做什么。通常,您不应该根据按钮的属性做出决定。相反,您应该有一个单独的属性(我们称它为 shifted
)来指示是否激活了 shift 按钮。
var shifted = false {
didSet {
if shifted {
changeSomeButtonsToShiftedAppearance()
} else {
changeSomeButtonsToNormalAppearance()
}
}
}
@IBAction func someBtns(_ sender: UIButton) {
if shifted {
doSomething()
} else {
doSomethingElse()
}
然后在按下 shift 时设置此属性:
@IBAction func shiftBtn(_ sender: UIButton) {
shifted = !shifted
}
关于swift - 来自单个 UIButton 的两个 "Different"按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57540856/