🗂
【SwiftUI】ボタンが押されたときに色を変える
はじめに
モディファイヤのプロパティを条件によって分岐させる方法です。備忘のための自分用メモです。
三項演算子を利用する
特別なことがない限りはこちらの方法が簡潔です。モディファイヤのプロパティに三項演算子を噛ませてBool変数に応じてモディファイヤの状態を変更します。
以下はボタンが押されたときにボタンの色を青から赤に変更します。
ContentView.swift
import SwiftUI
struct ContentView: View {
@State private var useRedText = false
var body: some View {
Button("Hello, world!") {
// flip the Boolean between true and false
useRedText.toggle()
}
.foregroundColor(useRedText ? .red : .blue)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
if文を利用する
if文を利用しても実現できます。ただし三項演算子を用いた方がスマートです。
var body: some View {
if useRedText {
Button("Hello World") {
useRedText.toggle()
}
.foregroundColor(.red)
} else {
Button("Hello World") {
useRedText.toggle()
}
.foregroundColor(.blue)
}
}
Discussion