【问题标题】:Change Background Color of multiple UIButton in Single Click单击更改多个 UIButton 的背景颜色
【发布时间】:2016-07-19 07:38:49
【问题描述】:

UIViewController 中有 16 个UIButton,一次只需要一个selected

我创建了一个UIButton 集合并通过执行for loop 更改backgroundColor。它工作正常。

但我需要一个/两行的快速解决方案,或者我可以说一下单击即可更改颜色的有效方法。

我认为我的方法效率不高,因为如果 UIViewController 有 50 个 UIButton

附:不要告诉我接受UICollectionView,因为我可以轻松做到!

【问题讨论】:

  • 一旦你有想法就看看这个stackoverflow.com/questions/28208045/…
  • @Anbu.Karthik 已经看到了,它也在执行循环,我认为KVC 也不是完美的解决方案。我想在不重复循环的情况下做到这一点。
  • 您实际上可以将按钮从情节提要中拖放到按钮数组中,然后您可以对其中的每个按钮进行循环以进行更改
  • @Tj3n 是的,已经这样做了,但正在寻找不同的解决方案。
  • 我认为无论其他方式它也需要一个循环...因为每个按钮都是单独的变量...即使使用 KVO 和单例管理器也需要循环

标签: ios objective-c iphone swift uibutton


【解决方案1】:

无论如何,您都需要枚举您的按钮。但是你可以在扩展中这样做一次:

extension Array where Element: UIButton {
    func setBackgroundColor(color: UIColor) {
        for element in self {
            element.backgroundColor = color
        }
    }
}

【讨论】:

  • 是的,我能做到!但是我需要在没有循环的情况下这样做,因为如果我有更多的按钮,那么这不是一个值得的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 2021-11-04
  • 1970-01-01
  • 2019-09-01
  • 2014-06-12
  • 2011-06-05
相关资源
最近更新 更多