Skip to content

Commit 0b3ef2a

Browse files
authored
Merge pull request #44 from wmorgue/update_searchable
Update searchable
2 parents d55f040 + 29ca781 commit 0b3ef2a

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

ru/meta/articles.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@
170170
"keywords" : [
171171
"searchable"
172172
],
173-
"updated_date": "21.02.2022",
173+
"updated_date": "22.02.2022",
174174
"added_date": "21.02.2022"
175175
}
176176
}

ru/tutorials/searchable-swiftui.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ struct ContentView: View {
6565
}
6666
```
6767

68-
Применили модификатор к `SecondaryView()` и изменили расположение на `.navigationBarDrawer`. За это отвечает структура `SearchFieldPlacement()`. По умолчанию `placement` установлено в `.automatic`.
68+
![Searchable Diff Placement](https://cdn.ivanvorobei.by/websites/sparrowcode.io/searchable-swiftui/searchable_diff_placement.png)
69+
70+
Применили модификатор к `SecondaryView()` и изменили расположение на `.navigationBarDrawer`. За размещение поля поиска отвечает структура `SearchFieldPlacement()`. По умолчанию `placement` установлено в `.automatic`.
6971

7072
[Searchable Placement](https://cdn.ivanvorobei.by/websites/sparrowcode.io/searchable-swiftui/searchable_placement.mov)
7173

@@ -130,7 +132,7 @@ extension ContentView {
130132
authors.filter { $0.name.contains(searchQuery) }
131133
```
132134

133-
По умолчанию бар поиска появляется внутри списка - поэтому он скрыт. Чтобы поиск появился - скрольте список вниз. В расширение вью я вынес `authorsResult` проперти.
135+
По умолчанию бар поиска появляется внутри списка - поэтому он скрыт. Чтобы поиск появился - скрольте список вниз. В расширение вью я вынес `authorsResult` проперти, чтобы разделить логику от интерфейса и улучшить читаемость кода.
134136

135137
## Предложения (Suggestions)
136138

@@ -147,7 +149,11 @@ authors.filter { $0.name.contains(searchQuery) }
147149

148150
[Searchable suggestions](https://cdn.ivanvorobei.by/websites/sparrowcode.io/searchable-swiftui/searchable_suggestions.mov)
149151

150-
Параметр `suggestions` принимает `@ViewBuilder`, поэтому можно сделать кастомную View и комбинировать варианты. Код текущего проекта:
152+
Полезно будет знать, что предложения накладываются на основную вью.
153+
154+
![Searchable overlay](https://cdn.ivanvorobei.by/websites/sparrowcode.io/searchable-swiftui/searchable_overlay.png)
155+
156+
Параметр `suggestions` принимает `@ViewBuilder`, поэтому можно сделать кастомную View и комбинировать варианты для поискового предложения. Код текущего проекта:
151157

152158
```swift
153159
struct ContentView: View {
@@ -189,7 +195,7 @@ extension ContentView {
189195
}
190196
```
191197

192-
Приложение упадет, если мы введем символы или цифры. Я оставил этот код, чтобы продемонстрировать комбинированные варианты поиска:
198+
Приложение упадет, если мы введем символы или цифры. Я оставил этот код, чтобы продемонстрировать комбинированные варианты предложений для поиска:
193199

194200
```swift
195201
.searchCompletion(authorsResult.first!.name)
@@ -246,3 +252,9 @@ struct ContentView: View {
246252
}
247253
}
248254
```
255+
256+
## Вывод
257+
258+
Сегодня мы познакомились с новым модификатором. Потребовалось всего пару строк кода и в вашем приложении появилась функция поиска. Сам по себе searchable прост, но таит сложное поведение.
259+
Надеюсь после прочтения статьи вам станет более понятна организация и работа поиска в SwiftUI.
260+
Спасибо, что дочитали и увидимся в следующих статьях.

0 commit comments

Comments
 (0)