LoginSignup
0
2

More than 1 year has passed since last update.

【SwiftUI】SearchBar選択時にPull-to-refreshのインジケータが表示されない

Posted at

環境

Xcode 14.2
Swift 5.7
iOS 15 & 16

事象

以下のようにSearchBar(searchable)とPull-to-refresh(refreshable)を両方付けると、SearchBar選択時に下スワイプしてもインジケータが表示されません。ただ、refreshableは呼ばれています。

TestView
struct TestView: View {
    @State var searchText: String = ""

    var body: some View {
        NavigationView {
            List {
                Text("hoge1")
                Text("hoge2")
                Text("hoge3")
                Text("hoge4")
                Text("hoge5")
            }
            .searchable(text: $searchText)
            .refreshable {
                print("refreshable")
            }
        }
    }
}

対応

navigationBarTitleDisplayModeをinline、navigationBarDrawerDisplayModeをalwaysで指定したらインジケータが表示されるようになりました。

TestView
struct TestView: View {
    @State var searchText: String = ""

    var body: some View {
        NavigationView {
            List {
                Text("hoge1")
                Text("hoge2")
                Text("hoge3")
                Text("hoge4")
                Text("hoge5")
            }
-            .searchable(text: $searchText)
+            .navigationBarTitleDisplayMode(.inline)
+            .searchable(text: $searchText, placement: .navigationBarDrawer(displayMode: .always))
            .refreshable {
                print("refreshable")
            }
        }
    }
}
0
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
0
2