Код: Выделить всё
var body: some View {
ScrollView {
ForEach(Array(self.poolStore.pools.enumerated()), id: \.element) { index, element in
NavigationLink(destination: PoolMasterViewDetails(poolMasterViewRouter: EditDetails(), pool: element)) {
smallcardView(pool: element)
}
}
}
.onAppear() {
self.fetchPoolsInDashboard()
}
}
struct smallcardView: View {
let pool: Pool
var body: some View {
VStack() {
HStack {
if (pool.type == "Survivor") {
Image("survival")
.resizable()
.frame(width: 120, height: 90)
.cornerRadius(10)
} else {
Image("pickem")
.resizable()
.frame(width: 120, height: 90)
.cornerRadius(10)
}
VStack(alignment: .leading) {
Spacer()
Text(pool.name)
.foregroundColor(Color.textColor)
.font(.title3)
.frame(width: 225, alignment: .leading)
.padding(.bottom, 0.1)
Text(pool.id)
.foregroundColor(Color.textColor)
.font(.system(size: 16))
Spacer()
}
.padding(.leading)
Spacer()
}
}
.padding()
.frame(maxWidth: .infinity)
.frame(height: 120)
}
}
Код: Выделить всё
let sortedArray = self.pools.sorted {
$0.id < $1.id
}
Когда они возвращаются на панель управления (список пулов), выбранный ими элемент оказывается вверху списка, а не внизу списка (как ожидалось). Список также прокручивается до верхней части списка в представлении информационной панели!?
Поскольку список также упорядочен по идентификатору пула, поэтому он был в позиции в самом низу списка!?
Я не знаю, как это исправить.
Я ожидаю, что пользователь нажмет на элемент в списке, переходит к подробному представлению, а когда они возвращаются назад, список находится в том же порядке (по идентификатору пула) и что пользователь находится в том же месте прокрутки или местонахождении, что и элемент, на который он щелкнул.
Может ли кто-нибудь что-нибудь рассказать по этому поводу, знаете ли вы, является ли это ошибкой в SwiftUI?
Подробнее здесь: https://stackoverflow.com/questions/785 ... in-swiftui
Мобильная версия