Поскольку у вас уже есть List
с искусственной строкой для строки поиска, вы можете просто добавить другой список в список, который будет вызывать другой выбор, когда он появится на экране (используя onAppear()
, как предложено Джо sh). Делая это, вам не нужно делать никаких «сложных» вычислений, чтобы узнать, является ли строка последней строкой ... искусственная строка всегда последней!
Я уже использовал это в одном из своих проектов и я никогда не видел этот элемент на экране, так как загрузка была запущена так быстро, прежде чем она появилась на экране. (Вы наверняка можете использовать прозрачный / невидимый элемент, или, возможно, даже использовать спиннер; -))
List {
TextField("Search...", text: binding) { /* ... */ }
ForEach(viewModelMyList.items, id: \.id) { item in
// ...
}
if self.viewModelMyList.hasMoreRows {
Text("Fetching more...")
.onAppear(perform: {
self.viewModelMyList.fetchMore()
})
}