UIStackView 是否像 UITableView 一样有委托?

Does UIStackView have a delegate like a UITableView has?

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

我的问题是,我想知道被点击的按钮的索引。 UIStackView 是否有类似于 UITableView's cellForRowAtIndexPath 的代表?

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

不,UIStackView 没有代表 class。您可以在将对象添加到堆栈视图时以编程方式添加操作。

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

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

点击按钮

delegate.buttonSelectedAt(sender.tag)

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