Swift:将属性设置为包含 UIButton 的 IBOutletCollection 的扩展
Swift: Set properties to an Extension of IBOutletCollection containing UIButtons
如何将属性设置为包含 "UIButtons" 的 "IBOutletCollection" 的 "extension"?我正在尝试以与扩展 UIButton 类似的方式来执行此操作,但它似乎并未扩展到 UIButton 的集合。我希望尽可能彻底和清楚。
虽然有类似的问题:
1.Change the color of UIButton in IBOutletCollection
2.Set Individual Title of UIButtons in IBOutletCollection
...以及其他许多人。我仍然没有掌握如何做到这一点,并且真的可以使用你们任何人提供的帮助。
这是我目前收集到的:
- IBOutletCollection 始终是 NSArray。
- 使用 for-in-loop 遍历数组的内容。
这是我的代码示例:(我尝试将“Array”所在的位置替换为:“NSArray”和“Collection”,其中“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()
我肯定不是专家编码员,非常感谢提供的任何帮助。
谢谢。
经过反复试验,我终于找到了解决方案。我想与任何需要在 IBOutletCollection 中将属性设置为 UIButtons 的人分享答案。当您想要 set/define 属性到一组按钮或所有按钮 project-wide 时,这是一种非常有效的方式来减少时间。
我真的希望有人觉得这很有用!
代码(已测试且有效):请注意,粗体 中的内容是我所讨论的代码的变化。
//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”。我希望这很有道理!
再见!
如何将属性设置为包含 "UIButtons" 的 "IBOutletCollection" 的 "extension"?我正在尝试以与扩展 UIButton 类似的方式来执行此操作,但它似乎并未扩展到 UIButton 的集合。我希望尽可能彻底和清楚。
虽然有类似的问题:
1.Change the color of UIButton in IBOutletCollection
2.Set Individual Title of UIButtons in IBOutletCollection
...以及其他许多人。我仍然没有掌握如何做到这一点,并且真的可以使用你们任何人提供的帮助。
这是我目前收集到的:
- IBOutletCollection 始终是 NSArray。
- 使用 for-in-loop 遍历数组的内容。
这是我的代码示例:(我尝试将“Array”所在的位置替换为:“NSArray”和“Collection”,其中“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()
我肯定不是专家编码员,非常感谢提供的任何帮助。
谢谢。
经过反复试验,我终于找到了解决方案。我想与任何需要在 IBOutletCollection 中将属性设置为 UIButtons 的人分享答案。当您想要 set/define 属性到一组按钮或所有按钮 project-wide 时,这是一种非常有效的方式来减少时间。
我真的希望有人觉得这很有用!
代码(已测试且有效):请注意,粗体 中的内容是我所讨论的代码的变化。
//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”。我希望这很有道理!
再见!