はじめに
本記事は SwiftWednesday Advent Calendar 2023 の9日目の記事です。
昨日も @uhooi で ブラーでぼかすけど膨らませない方法(SwiftUI) でした。
SwiftUIの EditButton
で「完了」のみ太字にする方法を紹介します。
環境
- OS:macOS Sonoma 14.0(23A344)
- Swift:5.9
EditButtonのデフォルト
EditButton
はデフォルトで「編集」も「完了」も太字ではありません。
編集 | 完了 |
---|---|
連絡先のEditButton
しかし連絡先の EditButton
は「完了」が太字になります。
編集 | 完了 |
---|---|
連絡先にかかわらず、Appleのアプリは「完了」が太字になっていることが多いです。
どうすれば EditButton
で「完了」のみ太字にできるでしょうか?
EditButtonで「完了」のみ太字にする方法
EditMode
を environment(_:_:)
で渡し、 isEditing
時のみ太字にすることで実現できます。
ContentView.swift
struct ContentView: View {
+ @State private var editMode: EditMode = .inactive
var body: some View {
NavigationStack {
Text("Foo")
.toolbar {
ToolbarItem(placement: .topBarTrailing) {
EditButton()
+ .bold(editMode.isEditing)
}
}
+ .environment(\.editMode, $editMode)
}
}
}
編集 | 完了 |
---|---|
「完了」のみ太字になりました。
おわりに
これでAppleのアプリにデザインを近づけることができました
もしもっと簡単に実現できる方法があれば、ぜひコメントなどで教えていただきたいです。
以上 SwiftWednesday Advent Calendar 2023 の9日目の記事でした。
明日は @h1d3mun3 さんです。