我有两个单选按钮,每个按钮都有自己的IBAction
。第一个表现完美无瑕。第二个具有if-else条件,并且不响应第一次敲击,但随后响应每个敲击。通过查看类似的问题,我感觉第一次点击只是在执行操作之前评估我的功能,但我无法找到一种方法让按钮在第一次点击时响应。
@IBAction func radioSchedule(_ sender: Any) {
print(timePicker.isHidden)
if timePicker.isHidden == true {
timePicker.isHidden = false
hideButton.isHidden = true
timeView.isHidden = false
itemTypeField.text = "Schedule"
saveButton.isHidden = false
} else {
timePicker.isHidden = true
timeView.isHidden = true
}
}
答案 0 :(得分:0)
看起来设置timepicker.ishidden
正在创建问题,修改代码如下: -
@IBAction func radioSchedule(_ sender: Any) {
print(timePicker.isHidden)
//Here updating the isHidden property first. If its false then initially will set to true.
timePicker.isHidden = !timePicker.isHidden
if timePicker.isHidden == true {
hideButton.isHidden = true
timeView.isHidden = false
itemTypeField.text = "Schedule"
saveButton.isHidden = false
} else {
timeView.isHidden = true
}
}
答案 1 :(得分:0)
我的猜测是timePicker
位于timeView
内,而timeView
最初是隐藏的,但timePicker
不是,这就是造成问题的原因。
如果是这样,您可以通过仅仅判断if/else
timeView
的{{1}}来解决此问题,然后您甚至不必担心将timePicker
设置为隐藏或不。
即:
@IBAction func radioSchedule(_ sender: Any) {
print(timeView.isHidden)
if timeView.isHidden {
hideButton.isHidden = true
timeView.isHidden = false
itemTypeField.text = "Schedule"
saveButton.isHidden = false
} else {
timeView.isHidden = true
}
}