我在 Storyboard中有这个设计,它是我同时堆叠的所有按钮。但是当我尝试将其连接到代码时我遇到了困难,似乎如此重复。
我尝试过使用常规的拖放操作来连接所有按钮,但它似乎又长又重复。 是否有最佳实践来连接并创建一个可以被所有按钮监听的监听器?使用for循环可能是。
最佳答案
你可以在 Storyboard中链接它们。
objective-C
@property (strong, nonatomic) IBOutletCollection(UIButton) NSArray * buttons;
swift 2.2
@IBOutlet var collectionOfButtons = [UIButton]()
override func viewDidLoad() {
super.viewDidLoad()
collectionOfButtons.forEach {
$0.addTarget(self, action: #selector(someFunc(_:)), forControlEvents: .TouchUpInside)
}
}
或者更简单的方法:
override func viewDidLoad() {
super.viewDidLoad()
for view in view.subviews {
(view as? UIButton)?.addTarget(self, action: #selector(someFunc(_:)), forControlEvents: .TouchUpInside)
}
}
func someFunc(sender: UIButton?) {}
swift 3.0
override func viewDidLoad() {
super.viewDidLoad()
view.subviews.forEach {
($0 as? UIButton)?.addTarget(self, action: #selector(someFunc(_:)), for: .touchUpInside)
}
}
func someFunc(_ sender: UIButton?) {}
关于ios - 在 UIView 中添加大量按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39808767/