Tips的な(SwiftUI)

状態変化を監視する変数は body View の上で宣言する

body内で宣言すると状態変化しない(状態変化する時にViewを表示し直すため)

id: \.self

ForEachでコレクションを一つずつ取り出して処理する時にviewのidに第一引数と同じものを与える?
このForEachの\.selfで動的に複数のListViewを作った場合挙動がおかしくなる。その場合はUUIDで構成したIDを割り当てる。
参考記事: https://zenn.dev/kntk/articles/1f1b40da6fe181

構造体、クラスの違い

構造体はインスタンス化せず使える値型
クラスはインスタンス化しないと使えない参照型

viewのカスタマイズは三項演算子で行う

SwiftUIのif文はオブジェクトを一度インスタンス化してから分けるのでその分処理が無駄になる

プロトコルとは

C++とかの抽象クラス的な機能

Listの背景色modifierについて

List内の背景色はすこし特殊で本体部と個別Viewを設置する【行】の背景色とで別れていて記述も通常と少し違う
文字色は通常通りの設定で可能

Viewに変数を渡した時の#Previewの書き方について

初期化時にプロパティを渡す子ビューのプレビューを作成するには、
#Previewマクロの中で、そのビューのイニシャライザ(init)に必要な引数を指定します。 
基本的な書き方
たとえば、TestViewmessage: Stringというプロパティを持っている場合、プレビューは以下のように書きます。

#Previewマクロのブロックの中は、ビューを返すクロージャとして扱われます。このため、TestView()のように引数を省略して呼び出すことはできず、TestView(message: "...")のように正しい引数を渡す必要があります。
複数のプレビューを作成する場合
さまざまな状態をテストするために、複数のプレビューを定義することもできます。

プレビューでダミーデータを使用する場合
プレビュー専用のダミーデータ(MockDataなど)を作成しておくと、より柔軟なプレビューが可能になります。

つまりプレビュー用に変数名の右は何でも良いから書いておけばおk

if文の後に【 , 】で && の代わりになる

Swift特有の文法 guard let でよく使われるらしい。

コメント

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