Всё о создании приложений под Android и iOS в одном месте.
🔹 Инструменты, библиотеки и ресурсы для ускорения работы.
🔹 Статьи и гайды для разработчиков любого уровня.
🔹 Тренды мобильной разработки и новости индустрии.
Реклама @evgenycarter
Post #1619
873

Взаимодействие с Table View в SwiftUI
Когда нужно показать список данных, особенно длинный список, использование
В этом посте мы рассмотрим, как сделать строки
Проблема
Когда вы используете
Вот простой пример использования
В этом примере строки будут отображаться, но никакого выбора пользователя не будет.
Решение
Чтобы добавить возможность выбора строк, вы должны предоставить
Вот обновленная версия примера:
Теперь пользователь сможет кликать по строкам и выбирать их. Переменная
Если вы хотите разрешить множественный выбор, вместо одного
И затем передавать биндинг
Реакция на выбор
Чтобы реагировать на выбор пользователя, вы можете использовать
Вывод
Хотя
https://www.createwithswift.com/enabling-interaction-with-table-view-in-swiftui/
#ios
👉 @developer_mobila
Когда нужно показать список данных, особенно длинный список, использование
Table в SwiftUI — отличный выбор. Однако иногда вы можете заметить, что при использовании Table базовое взаимодействие с ним не совсем такое, какое хотелось бы. Например, строка таблицы может не казаться кликабельной или не обрабатывать события выбора так, как вы ожидали.В этом посте мы рассмотрим, как сделать строки
Table в SwiftUI интерактивными и реагирующими на пользовательские действия.Проблема
Когда вы используете
Table в SwiftUI, вы можете ожидать, что строки будут интерактивными и позволят пользователю выбирать их. Однако по умолчанию, особенно на macOS, строки могут выглядеть пассивно: клики по ним не обрабатываются так, как хотелось бы, и события выбора не происходят.Вот простой пример использования
Table:
struct Person: Identifiable {
var id = UUID()
var name: String
var age: Int
}
struct ContentView: View {
var people = [
Person(name: "Alice", age: 30),
Person(name: "Bob", age: 25)
]
var body: some View {
Table(people) {
TableColumn("Name", value: \.name)
TableColumn("Age", value: \.age)
}
}
}
В этом примере строки будут отображаться, но никакого выбора пользователя не будет.
Решение
Чтобы добавить возможность выбора строк, вы должны предоставить
selection биндинг для Table. Таким образом Table будет знать, какие строки выбраны.Вот обновленная версия примера:
struct ContentView: View {
@State private var selectedPerson: Person.ID?
var people = [
Person(name: "Alice", age: 30),
Person(name: "Bob", age: 25)
]
var body: some View {
Table(people, selection: $selectedPerson) {
TableColumn("Name", value: \.name)
TableColumn("Age", value: \.age)
}
}
}
Теперь пользователь сможет кликать по строкам и выбирать их. Переменная
selectedPerson будет содержать идентификатор выбранного элемента.Если вы хотите разрешить множественный выбор, вместо одного
ID вы можете использовать Set<ID>:
@State private var selectedPeople = Set<Person.ID>()
И затем передавать биндинг
selection: $selectedPeople.Реакция на выбор
Чтобы реагировать на выбор пользователя, вы можете использовать
onChange модификатор:
.onChange(of: selectedPerson) { newSelection in
if let selected = newSelection {
print("Выбран человек с ID: \(selected)")
}
}
Вывод
Хотя
Table в SwiftUI изначально может не выглядеть полностью интерактивным, добавление биндинга для selection позволяет легко улучшить взаимодействие пользователя. Это делает строки таблицы кликабельными и позволяет обрабатывать выбор данных.https://www.createwithswift.com/enabling-interaction-with-table-view-in-swiftui/
#ios
👉 @developer_mobila
- 👍 3








