3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

SwiftWednesdayAdvent Calendar 2023

Day 9

EditButtonで「完了」のみ太字にする方法(SwiftUI)

Posted at

はじめに

本記事は SwiftWednesday Advent Calendar 2023 の9日目の記事です。
昨日も @uhooiブラーでぼかすけど膨らませない方法(SwiftUI) でした。

SwiftUIの EditButton で「完了」のみ太字にする方法を紹介します。

環境

  • OS:macOS Sonoma 14.0(23A344)
  • Swift:5.9

EditButtonのデフォルト

EditButton はデフォルトで「編集」も「完了」も太字ではありません。

編集 完了
image.png image.png

連絡先のEditButton

しかし連絡先の EditButton は「完了」が太字になります。

編集 完了
image.png image.png

連絡先にかかわらず、Appleのアプリは「完了」が太字になっていることが多いです。

どうすれば EditButton で「完了」のみ太字にできるでしょうか?

EditButtonで「完了」のみ太字にする方法

EditModeenvironment(_:_:) で渡し、 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)
        }
    }
}
編集 完了
image.png image.png

「完了」のみ太字になりました。

おわりに

これでAppleのアプリにデザインを近づけることができました :relaxed:
もしもっと簡単に実現できる方法があれば、ぜひコメントなどで教えていただきたいです。

以上 SwiftWednesday Advent Calendar 2023 の9日目の記事でした。
明日は @h1d3mun3 さんです。

参考リンク

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?