我有一個VC這樣如何限制按鈕點擊
對我有嵌入UIButtons,我就點擊改變自己的形象的複選框。這是我的代碼
@IBOutlet weak var bestSellerButton: UIButton!
@IBOutlet weak var trendingButton: UIButton!
@IBOutlet weak var lowToHighButton: UIButton!
@IBOutlet weak var highToLowButton: UIButton!
var isBoxClicked = Bool()
func updateCheckImageOnClick(button: UIButton) {
if isBoxClicked == true {
isBoxClicked = false
button.setImage(UIImage.init(named: "checkmark"), for: UIControlState.normal)
}
else {
isBoxClicked = true
button.setImage(UIImage(), for: UIControlState.normal)
}
}
@IBAction func clickedBestSellerBtn(_ sender: Any) {
updateCheckImageOnClick(button: bestSellerButton)
}
@IBAction func clickedTrendingBtn(_ sender: Any) {
updateCheckImageOnClick(button: trendingButton)
}
同樣爲其餘兩個。現在,每當點擊獲得設置和取消設置時,複選標記圖像都會正確設置,但是我想限制用戶,如果他點擊了暢銷商btn,他無法選擇其他選項,同樣,如果他點擊趨勢圖,他將無法選擇任何其他。我會怎麼做?
func update(button: UIButton) {
isBoxClicked = !isBoxClicked
button.setImage(isBoxClicked ? UIImage(named: "checkmark") : UIImage(), for: UIControlState.normal)
if button == bestSellerButton {
trendingButton.isEnabled = false
lowToHighButton.isEnabled = false
highToLowButton.isEnabled = false
} else if button == trendingButton {
bestSellerButton.isEnabled = false
lowToHighButton.isEnabled = false
highToLowButton.isEnabled = false
} else if button == highToLowButton {
trendingButton.isEnabled = false
lowToHighButton.isEnabled = false
bestSellerButton.isEnabled = false
} else {
bestSellerButton.isEnabled = false
trendingButton.isEnabled = false
highToLowButton.isEnabled = false
}
}
可以請你更新它的單選按鈕,如果我選擇一個所有其他人都未選中? –
每個按鈕應該是排他性的?我的意思是,highToLow按鈕應該禁用其他人呢? – Phillip
是啊,如果最好的賣家被選中,所有其他的應該被取消選擇,而如果我點擊趨勢,暢銷書被選中,那麼暢銷書應該被取消選擇。即一次只有一個。 –