ios - 在 UIView 中添加大量按钮

标签 ios xcode uiview storyboard

我在 Storyboard中有这个设计,它是我同时堆叠的所有按钮。但是当我尝试将其连接到代码时我遇到了困难,似乎如此重复。

enter image description here

我尝试过使用常规的拖放操作来连接所有按钮,但它似乎又长又重复​​。 是否有最佳实践来连接并创建一个可以被所有按钮监听的监听器?使用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/

相关文章:

iphone - 如何在 iOS 中创建一个小弹出窗口?

ios - 如何从 iTunes Connect 下载 DSYM 文件(Xcode 文件丢失)

ios - 带有 5.2.0 sdk 的 Titanium ios 应用程序在运行或分发模式下启动时崩溃,但在调试或模拟器中运行良好

ios - 从 iOS 应用程序中删除 mySQL 表的行

swift - Xcode 看不到通过 cocoa pod 安装的框架

ios - 迪尔德 : Symbol not found (Xcode 11)

ios - 将 Storyboard 中的 View 用于 ImagePicker

ios - UIView图片背景

ios - 我什么时候应该在 ios swift 上存储和重新存储到钥匙串(keychain)?

ios - 在部署 iOS 应用程序的临时测试版本时遇到问题