【发布时间】:2020-07-17 03:39:27
【问题描述】:
所以我有这些按钮(3 叠 6 个,所以 18 个),我想要实现的是当我按下这些按钮之一时:
边框颜色和文本颜色变化
其他按钮被重置为正常样式
但我不想通过“isEnabled”技巧禁用其他人(我在这里只找到了涉及 isEnabled 的解决方案),我仍然希望启用它们,我只是希望它们不被“突出显示”按下时我的自定义样式。
对于我在 IBAction 中所做的样式的第一部分:
@IBAction func preset1Pressed(_ sender: UIButton) {
preset1.layer.borderColor = #colorLiteral(red: 0.4095217415, green: 0.6107917746, blue: 0.2774988226, alpha: 1)
preset1.layer.borderWidth = 0.42
preset1.setTitleColor(#colorLiteral(red: 0.4095217415, green: 0.6107917746, blue: 0.2774988226, alpha: 1), for: .normal)
}
这小部分仅用于 1 个按钮,但我想如果我有 18 个按钮,我应该创建一个类或结构,而不是在每个 IBAction 中复制它??还是一个函数?
然后对于第二部分,我不知道该怎么做,当按下一个按钮时,将返回到其他按钮的原始属性(在属性检查器中设置)。 直观地说,我确信它是一个函数内所有 18 个按钮的数组的组合,该函数将遍历所有数组,并且可能在每个按钮上创建一个 bool 以检查它们是否被按下,但我真的不知道语法是怎样的......
还值得注意的是,如果我在同一个按钮上按两次,我不希望它恢复到原来的属性,而是保持“按下”的样式。
提前致谢!
【问题讨论】: