SwiftUIのラベルとボタンスタイルビュー修飾子 ノート

SwiftUIのラベルとボタンスタイルビュー修飾子

この記事では、カスタムSwiftUIのButtonとLabelスタイルの作成について説明しています。これには、コンパクトな水平サイズクラスでは垂直レイアウトに切り替わる適応型ラベルスタイルと、塗りつぶされた黄色のカプセルと等幅フォントデザインのカスタムカプセルボタンスタイルが含まれます。これらのスタイルは、.labelStyleおよび.buttonStyle修飾子を使用してビューに適用できます。しかし、LabelStyleButtonStyleに便利な拡張機能を作成することはあまり一般的ではありません。これは、修飾子のよりコンパクトな形式を可能にします。これを達成するために、この記事では、Appleが組み込みスタイルを定義する方法と同様に、ButtonStyleLabelStyleを拡張することを提案しています。これには、カスタムスタイルのインスタンスを返す静的プロパティまたは関数を拡張に追加することが含まれます。たとえば、カプセルボタンスタイルは、CapsuleButtonStyleインスタンスを返す静的プロパティcapsuleで拡張できます。これにより、コンパクトな形式.buttonStyle(.capsule)を使用してスタイルを適用できます。カスタムスタイルに、設定可能な色などのパラメータがある場合、パラメータを受け取り、カスタムスタイルのインスタンスを返す関数を含めるように拡張機能を変更できます。これにより、.buttonStyle(.capsule(.orange))のようにパラメータを使用してスタイルを適用できます。この記事では、便利なカスタムスタイルを作成するためにButtonStyleLabelStyleを拡張する方法の例を示しています。