[英]clicking on one uibutton in custom uitableviewcell selects multiple uibuttons in uitableview
[英]How to make the user select only one custom UIButton in a view with multiple UIButtons? Swift 3
因此,您在按鈕周圍有某種邊框,然后可以遍歷所有按鈕並找到帶有邊框的邊框,將其刪除,然后將邊框設置為新選擇的按鈕。 像這樣:
func buttonSelected(clickedButton: UIButton) {
for case let button as UIButton in self.view.subviews {
if button.layer.borderColor == UIColor.black.cgColor {
// deselect it here by changing the border
button.layer.borderColor = UIColor.clear.cgColor
}
// select the clicked button
clickedButton.layer.borderColor = UIColor.black.cgColor
}
}
有時最好知道選擇了哪個,所以我會做這樣的事情。
var selectedButton: UIButton? {
didSet {
selectedButton?.layer.borderColor = UIColor.black.cgColor
}
}
func buttonSelected(sender: UIButton) {
//Already selected check
guard selectedButton != sender else { return }
//Change current selected button properties
selectedButton?.layer.borderColor = UIColor.clear.cgColor
//Choose new selected button
selectedButton = sender
}
如果您想改變很多事情,我建議您繼承UIButton並在其中包含兩個函數。 setSelected()和setUnselected()然后可以這樣工作:
var selectedButton: SelectableButton?
func buttonTapped(sender: SelectableButton) {
guard selectedButton != sender else { return }
sender.setSelected()
selectedButton?.setUnselected()
selectedButton = sender
}
編輯:我認為這是一個更好的解決方案,然后通過所有子視圖進行for循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.