从Stackview获取View的索引

时间:2018-09-19 15:50:28

标签: ios swift uistackview

我在stackview中添加了2个不同大小的视图。现在,当我单击任意视图的加号按钮时,我只想在该视图的正下方添加一个视图。

我正在通过

查看
let index = superView.subviews.index(of: view)

然后我是

    superView.insertArrangedSubview(newView, index + 1)

但实际上它是在不同位置添加新视图。因此,如果我尝试通过.subview.index获取索引,那么它总是返回最后一个索引

1 个答案:

答案 0 :(得分:4)

arrangedSubviewssubviews数组不必相同(因为堆栈视图可以具有未“排列”的子视图)。即使它们具有相同的元素,也不必具有相同的顺序。

所以:

if let index = stackView.arrangedSubviews.firstIndex(of: view) {
    stackView.insertArrangedSubview(newView, at: index + 1)
}