ios - UIStackView 是否像 UITableView 一样有委托(delegate)?

标签 ios swift uistackview

我在 UIStackView 中添加了三个水平对齐的按钮。该按钮来自 Nib 文件,我在 nib 的所有者中有一个 @IBAction

我的问题是,我想知道被点击的按钮的索引。 UIStackView 是否有一个类似于 UITableView 的 cellForRowAtIndexPath 的委托(delegate)?

目前我正在以一种丑陋的方式为按钮设置标题,然后在单击按钮时获取按钮标题并执行我的操作。有更好的方法吗?

最佳答案

不,StackView 没有您预期的任何委托(delegate)。如果您像下面这样创建自己的委托(delegate)会更好

protocol MyDelegate: class {
    func buttonSelectedAt(_ index: Int?)
}

点击按钮

delegate.buttonSelectedAt(sender.tag)

注意:不要忘记为您的按钮添加标签,以便您可以分别识别每个按钮。

关于ios - UIStackView 是否像 UITableView 一样有委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49313623/

相关文章:

iOS Stackview 点击彼此之上的按钮

ios - AutoLayout:在 UIStackView/UITableViewCell 中缩放 UIImageView 时出现问题

iOS 8.3 键盘方向错误

ios - 关闭模态视图时如何在 UITableView 中显示数据

swift - Swift计算多维数组的维数

Swift:无法使用只读属性 'xxx' 覆盖可变属性

swift - 无法从 `UIStackView` 中删除轴动画

ios - 我们可以在 ios sdk 中添加五个以上的标签栏吗?

ios - 为什么播放时系统不保留一个AVAudio播放器?

swift - Xcode 构建失败