[SwiftUI][iOS]Buttonの使い方(3)〜角丸ボタンの作り方〜

SwiftUI

2021/6/4

「角丸ボタンの作り方を知りたい」

「角丸のボタンってどうやって作るの?」

と言う人に向けて、この記事は書かれています。

どうも、ちょげ(@chogetarou)です。

この記事では、前回の記事「[SwiftUI]Buttonの使い方(2)〜ラベルとは〜」に引き続き、角丸のButtonについて解説します。

スポンサーリンク

角丸ボタンの作り方

角丸ボタンは、overlay修飾子を使うことによって作れます。

overlay修飾子は、Viewの上にビューを重ねる修飾子です。

やり方は以下のようになります。

  1. overlay修飾子をつける
  2. 角丸の四角形RoundedRectangleビューを重ねる
  3. RoundedRectangleを枠線だけにする

1.overlay修飾子

Buttonビューにoverlay修飾子を付けます。

Button(action: {}) {
    Text("Button")
}
.overlay()

2.RoundedRectangleビューを重ねる

RoundedRectangleビューをButtonビューに重ねます。

            Button(action: {} ) {
                Text("ボタン")
            }
            .padding()
            .overlay(
                RoundedRectangle(cornerRadius: 15)
            )

この時点では黒い角丸の四角形が表示されているだけの状態です。

3.RoundedRectangleを枠線のみにする

最後にRoundedRectangleを枠線のみにします。

.stroke修飾子を使うことによって、枠線のみにすることが出来ます。

            Button(action: {}) {
                Text("ボタン")
            }
            .padding()
            .overlay(
                RoundedRectangle(cornerRadius: 15)
                    .stroke(Color.red, lineWidth: 5)
            )

これで角丸ボタンの完成です。

ボタンを塗りつぶしたい場合は、Buttonビューの背景色をbackgroundColor修飾子で変更してください。

strokeで指定した色と同じであれば、塗りつぶされたボタンが出来ます。

stroke(_: Color, lineWidth: CGFloat )
第1引数:色を指定
第2引数:枠線の太さを指定

まとめ

  1. overlay修飾子
  2. RoundedRectangleで角丸の四角形を重ねる
  3. strokeで枠線だけにする

の手順で角丸ボタンを作ることが出来ます。

補足

            Button(action: {}) {
                Text("ボタン")
            }
            .padding()
            .border(Color.black)
            .cornerRadius(10.0)

Buttonにborderで枠線をつけて、cornerRadiusで角を丸めれば同じように角丸ボタンは作れそうです。

しかし、borderとcornerRadiusの場合は、角が表示されなくなってしまいます。

なので、この記事で紹介したoverlay修飾子が最も使われる角丸ボタンの実装方法となります。

Buttonシリーズ

終わりに

読んで頂きありがとうございました。

少しでも参考になれば嬉しいです。

では、サラダばー!

コメント

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