49

如何在 UIStackView 的特定索引中添加排列的子视图?

就像是:

stackView.addArrangedSubview(nibView, atIndex: index)
4

2 回答 2

92

你的意思是你想插入,而不是添加:

func insertArrangedSubview(_ view: UIView, atIndex stackIndex: Int)
于 2015-12-23T11:05:55.680 回答
0

如果你不想与索引斗争,你可以使用这个扩展

extension UIStackView {
    func insertArrangedSubview(_ view: UIView, belowArrangedSubview subview: UIView) {
        arrangedSubviews.enumerated().forEach {
            if $0.1 == subview {
                insertArrangedSubview(view, at: $0.0 + 1)
            }
        }
    }
    
    func insertArrangedSubview(_ view: UIView, aboveArrangedSubview subview: UIView) {
        arrangedSubviews.enumerated().forEach {
            if $0.1 == subview {
                insertArrangedSubview(view, at: $0.0)
            }
        }
    }
}
于 2020-12-04T10:09:26.117 回答