Stack View自動レイアウト

2611 ワード

🐶 基本事項


ААААААААААААА


スタック方向に応じて垂直スタックと水平スタックがあります

作成✔痾Stack view


“Embed In Stack View”

✔¥Stackview自身設置+内部要因の制約総合決定


元のエレメントコンストレイント(Element Constraint)を加えると、
Stackview自身でマージを設定し、最終的にコンストレイントを完了

🐸 Stack Viewの設定


✔勘定科目サイズ:UIstackView。Distribution


「Intronic Size」を尊重

  • fill:ダイレクトフィル
  • EqualSpacing:コンテンツ境界間で同じ間隔(スペース)を保つ
  • 等中心距離:
  • ⑪コンテンツサイズを強制的にStackに調整する

  • fillEqually:同じ幅
  • パディングスケール:コンテンツの割合
  • ✔位置:UIstackView。Alignment


    「Intronic Size」を尊重


    Vertical Stack
  • プリアンブル:親ビューのプリアンブルを揃えます.
  • ドラッグ:親ビューのドラッグを位置合わせします.
  • Horizontal Stack
  • top:親ビューの上部を揃えます.
  • の下部:親ビューの下部を揃えます.
  • firstBaseline:各要素の内容の最初の行の間を揃えます.
  • lastBaseline:各要素の内容の最後の行の間で整列します.
  • 2479172 center:親ビューのcenterにジャンプします.

    ⑪コンテンツサイズを強制的にStackに調整する


    Vertical Stack
  • fill:最も広いコンテンツを基準として、残りのコンテンツの幅
  • を強制的に統一する.
    Horizontal Stack
  • fill:最も高いコンテンツを基準として、残りのコンテンツの高さを
  • に統一することを強制する.

    🐮 付録:コンテンツアニメーションの追加/削除


    Stackの要素の追加/削除時にアニメーションを追加
    正式なAPIではないのでコードしか使えません
    要するに、
    1.Stackに隠しておく
    2.非表示をアニメートする
    let myView = UIView()
    myView.isHidden = true 
    stackView.addArrangedSubview(myView) // 1.숨긴 채로 push
    
    UIView.animate(withDuration: 0.3) { // 2.숨김 해제를 애니메이션화
        myView.isHidden = false
    }