UIStackViewとは?
iOS9から導入された概念
UIView郡をUIStackView内に入れ子として管理できる。
UIStackViewが親でUIButtonなどの各UIパーツが子要素になる。
Apple公式チュートリアル内でボタンを削除する
対象となるコードはこちら(抜粋)
private var ratingButtons = [UIButton]() // clear any existing buttons for button in ratingButtons { removeArrangedSubview(button) button.removeFromSuperview() } ratingButtons.removeAll()
UIStackViewの削除
メソッドの一つ一つ動作
removeArrangedSubView
でUIStackViewに割り当てられているUIパーツの配列から該当UIパーツを削除するburron.removeFromSuperview
でSuperViewからUIButtonの参照を外すratingButtons.removeAll()
で配列を空にする
arrangedSubview
はSubview(ここではUIStackView)に組み込まれたViewのこと。公式チュートリアルでは星型のUIButtonがこれにあたる。
このarrangedSubview
は中に配列としてUIパーツを持つので、最初に対象のUIパーツをこの配列から外す。
次に、removeFromSuperView
で対象のUIパーツの参照を親のViewから外す。
これで参照されるUIパーツがUIViewから削除されて新しくボタンを定義できるようになる。