100 Days of SwiftUI(DAY 47(Project9 part 4))

ここでは、過去3つのプロジェクトで取り上げたすべての新しいことを簡単にまとめます。

@State構造体でのみ機能する理由。
を使用@ObservedObjectしてクラスを操作する方法。
@Published監視しているSwiftUIビューにプロパティの変更を通知するにはどうすればよいですか。
sheet()修飾子とを使用したビューの表示と非表示presentationMode
onDelete(perform:)スワイプで削除できるようにするために使用します。
EditButtonユーザーがリストデータをより簡単に編集できるように、ナビゲーションバーアイテムに追加します。
によるデータの読み取りと書き込みUserDefaults
Codableを使用したデータのアーカイブとアーカイブ解除(階層に保存されているデータの操作を含む)。
Identifiableプロトコルを使用して、すべてのアイテムがユーザーインターフェイスで一意に識別できることを確認します。
GeometryReaderコンテンツを画面に合わせる方法。
を使用ScrollViewして、スクロール可能な領域にカスタムビューをレイアウトします。
を使用してナビゲーションスタックに新しいビューをプッシュするNavigationLink
Swiftのジェネリックシステムを使用して、さまざまな種類のデータを処理するメソッドを記述します。
Swiftのfirst(where:)メソッドを使用して、述語と一致する配列の最初の要素を見つける方法。
layoutPriority()ビューに割り当てるスペースを調整するために使用します。
カスタムパスとシェイプを作成する。
を使用して、はめ込み、境界線をストロークできる形状を作成しInsettableShapeます。
を使用CGAffineTransformして回転と平行移動を作成します。
を使用してクリエイティブな境界線と塗りつぶしを作成しImagePaintます。
を使用して複雑なビューを描画するためのMetalの有効化drawingGroup()。
ブレンドモードと彩度の変更。
animatableDataおよびを使用してシェイプをアニメーション化しますAnimatablePair
それがたくさんあることに同意していただければ幸いです。また、ハードコア言語の機能からユーザー向けのビュー、さらにはSwiftの描画システムの創造的な使用法まで、幅広い範囲に及びます。純粋な言語のものを好む人もいれば、コーディングのより創造的な面を好む人もいますが、それは問題ありません。私たち全員が異なる方法で学習し、それで問題ありません。