是否可以同时将按钮的选择限制为仅三个按钮?我希望用户只选择3个字符特征。现在我的代码设置方式是点击按钮可将图像更改为高亮显示的图像。给人留下印象。我想一次只选择三个按钮。
{{1}}
答案 0 :(得分:1)
如果您将按钮括在UIView
内,则可以使用此视图的子视图迭代按钮,这样可以使事情变得更容易一些。没有必要将每个按钮都设为插座,但如果您选择不这样做,则必须在故事板中设置.normal
和.selected
图像。
一旦你有一个只包含按钮的视图,你就可以创建一个计算属性,它返回一个UIButton
的映射数组,以及一个告诉你当前选择了多少个按钮的属性。
// MARK: Outlets
@IBOutlet weak var traitButtonsView: UIView?
// MARK: Properties
var traitsSelected: Int {
return traitButtons.filter { $0.isSelected }.count
}
var traitButtons: [UIButton] {
return traitButtonsView?.subviews.flatMap { $0 as? UIButton } ?? []
}
// MARK: Actions
func buttonTapped(sender: UIButton) {
if traitsSelected < 3 || sender.isSelected {
sender.isSelected = !sender.isSelected
}
}
答案 1 :(得分:0)
每次按下按钮时,你都可以保留一些递增和递减的计数器。
var counter = 0;
func buttonTapped(sender:UIButton) {
if sender.isSelected {
counter += 1
}
else {
counter -= 1
}
if counter > 3 {
return;
}
sender.isSelected = !sender.isSelected;
}