SwiftUI Academy · レッスン

カスタムViewModifier

モディファイアのチェーンを1つのモディファイアにまとめます。

レッスン 2/413 ステップ

「カスタムViewModifier」はCoddyKit上の無料SwiftUI Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwiftUI Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 SwiftUI Academyコースには全4レッスンが含まれています。

よく使うモディファイア

同じpadding、background、corner radiusを何度も連結しているなら、カスタムViewModifierでその連結を再利用可能な1つの処理にまとめられます。✨

ViewModifierプロトコル

カスタムモディファイアは、ViewModifierに準拠するstructです。そのbodyで、指定したスタイルを元のcontentに適用します。

struct CardStyle: ViewModifier {
    func body(content: Content) -> some View {
        content.padding()
    }
}

contentパラメータ

body内では元のビューをcontentとして受け取ります。表示内容を置き換えるのではなく、装飾を加えた新しいビューを返します。

.modifierで適用する

.modifierメソッドを使うと、どのビューにもモディファイアを付けられます。同じ見た目を、読みやすい1回の呼び出しで適用できます。

Text("Hi").modifier(CardStyle())

extensionでラップする

.modifier(CardStyle())という呼び出しは少し扱いにくいものです。View extensionを追加して、組み込みモディファイアのようにスタイルを記述できるようにします。

extension View {
    func cardStyle() -> some View {
        modifier(CardStyle())
    }
}

すっきり読める形にする

extensionを使うと、自然な書き方で利用できます。1つのmethod名に、スタイルの連結全体をまとめられます。

Text("Hi").cardStyle()

パラメータを追加する

モディファイアに保存propertiesを持たせると、呼び出し側で調整できます。extensionのメソッドにも値を渡します。

struct CardStyle: ViewModifier {
    var color: Color
    func body(content: Content) -> some View {
        content.background(color)
    }
}

複数のモディファイアを組み合わせる

カスタムモディファイアでは、複数の組み込みモディファイアを連結できます。スタイルのdesign recipe全体を1つの名前にまとめられます。

content.padding().background(.gray).cornerRadius(12)

アプリ全体で一貫性を保つ

すべてのカードが同じモディファイアを使えば、UIのconsistentさを保てます。モディファイアを1回更新するだけで、アプリ全体に反映されます。

モディファイアと切り出したビュー

任意のコンテンツのスタイルを変えるにはmodifierを使い、固定されたレイアウトには切り出したビューを使います。モディファイアは装飾し、ビューは構造を定義します。

順序も重要

body内では、モディファイアのorderは通常どおり重要です。paddingの前にbackgroundを置く場合と、backgroundの前にpaddingを置く場合では結果が異なるため、注意して並べてください。

クイックチェック

カスタムモディファイアについて確認しましょう。

まとめ:スタイルをまとめる

ViewModifierはスタイルの連結を再利用可能な1つの処理にまとめ、View extensionによってドット記法で簡潔に呼び出せます。1度定義したスタイルをどこでも適用できます。🧠

無料で開始

AI チューターと学ぶ Swift — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「カスタムViewModifier」レッスンは無料ですか?

はい。「カスタムViewModifier」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、SwiftUI Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 SwiftUI Academyコースには全4レッスンが含まれています。

「カスタムViewModifier」で何を学びますか?

モディファイアのチェーンを1つのモディファイアにまとめます。 ブラウザで直接実行するハンズオンコードでSwiftUI Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

SwiftUI Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのSwiftUI Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「カスタムViewModifier」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このSwiftUI Academyレッスンでコードを書いて実行できますか?

はい。すべてのSwiftUI Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 再利用可能なビューを切り出す
  2. カスタムViewModifier
  3. ButtonStyleとLabelStyle
  4. ViewBuilderとジェネリックコンテナ
← SwiftUI Academyに戻る