【SwiftUI入門】コンポーネントまとめーその2

botman_blue iOS

Xcode-12.4 Swift-5.3 iOS-14.0

はじめに

SwiftUI のコンポーネントまとめです。下記ドキュメントにあるやつをまとめました(ターゲットは iOS14 です)。

View Layout and Presentation

GitHubソース

まとめーその1

Stacks

stacks

HStack

UIStackView の horizontal 相当?

ドキュメント:HStack

簡易実装。

VStack

UIStackView の vertical 相当?

ドキュメント:VStack

簡易実装。

ZStack

View を重ねるときに使うやつ?

ドキュメント:ZStack

簡易実装。

Lazy Stacks

lazy_stacks

LazyHStack

HStack のメモリ改善版?たぶん ScrollView とかと組み合わせて使うやつ。画面表示される部分だけ読み込まれる。

ドキュメント:LazyHStack

簡易実装。

LazyVStack

VStack のメモリ改善版?たぶん ScrollView とかと組み合わせて使うやつ。画面表示される部分だけ読み込まれる。

ドキュメント:LazyVStack

簡易実装。

Grids

grids

LazyHGrid

UICollectionView 相当?横方向のグリッド表示ができる。

ドキュメント:LazyHGrid

簡易実装。

LazyVGrid

UICollectionView 相当?縦方向のグリッド表示ができる。

ドキュメント:LazyVGrid

簡易実装。

GridItem

UICollectionViewCell 相当?たぶん LazyHGrid, LazyVGrid と組み合わせて使うやつ。

ドキュメント:GridItem

サイズは下記 3 つがある。

  • adaptive
  • fixed
  • flexible

Containers

containers

Form

入力系をグループ化するやつ?今まで UITableViewController の static cell でやってたのがこいつでできるようになった感じ?

ドキュメント:Form

簡易実装。

Group

View をグループ化するやつ?たぶんレイアウトに影響はない。

ドキュメント:Group

簡易実装。

GroupBox

ラベルを付けてグループ化してくれるやつ?(どういうとき使うかはちょっとよくわかってない。。。)

ドキュメント:GroupBox

簡易実装。

ControlGroup

iOS 15 以上用なので割愛。

ドキュメント:ControlGroup

Scroll Views

scrolls

ScrollView

UIScrollView 相当?Axis で縦横指定ができる。デフォルトは vertical

ドキュメント:ScrollView

簡易実装。

ScrollViewReader

ScrollViewProxy を利用して指定の ScrollView の子 View にスクロールできるようにするためのやつ?

ドキュメント:ScrollViewReader

簡易実装。

ScrollViewProxy

指定の View にスクロールさせたいときに使うやつ?ScrollViewReader を介して利用するもので直接生成とかはしない。

ドキュメント:ScrollViewProxy

Lists

lists

List

UITableView 相当?これはよく使いそうなので別記事でまとめたい。

ドキュメント:List

簡易実装。

Section

List, Picker, Form などで使えるヘッダー・フッター?

ドキュメント:Section

簡易実装。

ForEach

Identifiable に準拠したデータを一覧表示してくれるやつ(イマイチ List との違いがわからない。。。)。

ドキュメント:ForEach

簡易実装。

Tables

Table

macOS 用なので割愛。

ドキュメント:Table

Hierarchical Views

hierarchical

NavigationView

UINavigationController 相当?これはよく使いそうなのでまた別記事でまとめたい。

ドキュメント:NavigationView

簡易実装。

NavigationLink

NavigationView の画面遷移用?

ドキュメント:NavigationLink

簡易実装。

OutlineGroup

ツリー構造がつくれる?

ドキュメント:OutlineGroup

簡易実装。

DisclosureGroup

開閉式の View が表示できる?

ドキュメント:DisclosureGroup

簡易実装。

TabView

UITabBarController 相当?

ドキュメント:TabView

簡易実装。

HSplitView

macOS 用なので割愛。

ドキュメント:HSplitView

VSplitView

macOS 用なので割愛。

ドキュメント:VSplitView

Scheduled View Updates

TimelineView

iOS 15 以上なので割愛。

ドキュメント:TimelineView

Spacers and Dividers

spcers

Spacer

自動で拡縮される余白?UIBarButtonItemflexibleSpace のようなもの?

ドキュメント:Spacer

簡易実装。

Divider

セパレータ?これで View 同士の区切りがわかりやすくなる!

ドキュメント:Divider

簡易実装。

おわりに

一覧表示系が充実した印象。今まで UITableView, UITableViewController で頑張ってたのをいろいろなやつに分けられた感じがする。

まだあまりそれぞれの使い道がよくわかっていないのでじっくりならしたいきたい。

パーツ系でもう一つドキュメントがあったけど上級者向けな気がしてまとめるか迷う。。。

Drawing and Animation

参考

コメント

タイトルとURLをコピーしました