如何将属性设置为包含“ UIButtons”的“ IBOutletCollection”的“扩展名”?我正在尝试以一种类似于扩展UIButton的方式来执行此操作,该扩展似乎并未扩展到UIButton的集合。我希望尽可能的透彻和清晰。
尽管有类似的问题:
1。Change the color of UIButton in IBOutletCollection
2。Set Individual Title of UIButtons in IBOutletCollection
...还有无数其他人。我仍然不知道如何做到这一点,可以真正使用任何人都可以提供的帮助。
这是我到目前为止收集的内容:
这是我的代码示例:(我尝试用“ NSArray”和“ Collection”替换“ Array”的位置,而“ Collection”的工作方式类似于“ Array”)
//Inside the main viewController:
@IBOutlet var ButtonCollection: [UIButton]!
//Inside the extention file:
extension Array where Element == UIButton
{
func sharedButtonProperties()
{
for button in ButtonCollection
{
self.setTitleColor(.red, for: .normal)
//MARK: More properties will go here, once I get this to work.
}
}
}
//calling the code inside main viewController, within "viewDidAppear"
ButtonCollection.sharedButtonProperties()
现在,这里是一个UIButton的单个IBOutlet扩展的示例,该扩展正常工作,但不适用于Collection:
//Inside the main viewController:
@IBOutlet weak var ButtonSingle: UIButton?
//Inside the extention file:
extension UIButton
{
func buttonProperties()
{
self.setTitleColor(.red, for: .normal)
}
}
//calling the code inside main viewController, within "viewDidAppear"
ButtonSingle?.buttonProperties()
我肯定不是专家编码员,我们将不胜感激。
谢谢。
答案 0 :(得分:0)
经过反复尝试,我终于找到了解决方案。我想与需要在 IBOutletCollection 中将属性设置为 UIButtons 的任何人共享答案。当您要为一组按钮或项目范围内的所有按钮设置/定义属性时,这是一种减少时间的非常有效的方法。
我真的希望有人觉得这有用!
代码(已测试并有效):请注意,粗体中的内容是与我所讨论的代码相比有何变化。
//Inside the main viewController
@IBOutlet var ButtonCollection: [UIButton]!
//Inside the extention file:
extension Array where Element == UIButton
{
func sharedButtonProperties()
{
for **buttonGrp** in **self**
{
**buttonGrp**.setTitleColor(.red, for: .normal)
//MARK: More properties will go here now!
}
}
}
//calling the code inside main viewController, within "viewDidAppear"
ButtonCollection.sharedButtonProperties()
如您所见:我几乎已经弄明白了,但是所需要做的只是将“ for-in-loop”称为“ buttonGrp”,并将其设置为“ self”。感觉!
再见!