【SwiftUI】カスタムView修飾子の作成

SwiftUIでは、定形のView修飾子をまとめたカスタムView修飾子を作成できます。これは、繰り返し処理を避け、ソースの簡素化をはかるのに有効です。
本記事では、カスタムView修飾子の定義方法と使用方法を紹介します。

スポンサーリンク

環境

この記事の情報は次のバージョンで動作確認しています。

【Xcode】11.2.1
【Swift】5.1
【iOS】13.2.3
【macOS】Catalina バージョン 10.15

カスタムView修飾子の定義

カスタムView修飾子はViewModifire protpcolに準じた構造体として定義します。
次のコードはタイトル用のカスタム修飾子”MyTitle”を定義するサンプルです。

使用する際には次のようにmodifier()メソッドを使います。

【図1:カスタムView修飾子の使用例】

注意点として、カスタムView修飾子内で使えるのは、View protocol に定義されている一般的なView修飾子のみです。
例えば resizable() のように、特定のViewにしか有効でないものは使えません。

modifier()メソッドをラップする

次のようにViewのextensionとして定義する事で、modifire()メソッドを任意のメソッドに置き換えられます。

先程のmodifier()メソッドを呼び出す部分が次のように置き換えられます。

カスタムView修飾子でView構造を定義する

カスタム修飾子は、既存の修飾子の組み合わせだけでなく、必要に応じて新しいビュー構造を作成できます。
次の例は、ViewをStackに埋め込み、別のViewを追加するオブジェクトを作成する事で、著作権表示の機能を実現しています。

【図:著作権表示のカスタムView修飾子】

最後に

カスタムView修飾子の作成方法でした。

SwiftUI
スポンサーリンク
スポンサーリンク
カピ通信

コメント