wong john
wong john

Reputation: 55

swift Stack insertSubview & auto refresh layout problem

I would like to click and add subview at: index 3 position. But the constraint not update automatically. how can i refresh the layout when adding subview to uistack?

Thank you for your help very much

@objc func showMoreView() {
        stackView.insertSubview(view3, at: 3)
        stackView.superview?.layoutIfNeeded()
        view.layoutIfNeeded()
    }
    

Current Layout

 view.addSubview(stackView)
 stackView.addArrangedSubview(view1)       
 stackView.addArrangedSubview(view2)       
 stackView.addArrangedSubview(view4)
 stackView.addArrangedSubview(view5)

Upvotes: 0

Views: 1212

Answers (2)

ThuyTQ
ThuyTQ

Reputation: 36

Swift provides the following UIStackView function to insert a view at a specified position:

func insertArrangedSubview(_ view: UIView, atIndex stackIndex: Int)

(see the documentation for more information)

Upvotes: 1

stoikokolev
stoikokolev

Reputation: 517

You need to use

func insertArrangedSubview(_ view: UIView, at stackIndex: Int)

like that:

stackView.insertArrangedSubview(view3, at: 3)

Documentation here

Upvotes: 0

Related Questions