Список не прокручивается (в SwiftUI - для устранения неоднозначности от других вопросов) - PullRequest
0 голосов
/ 09 июля 2020

Используя SwiftUI, у меня есть список элементов, извлеченных из CoreData. Все, что я читаю, заставляет думать, что список должен быть чем-то, что я могу нормально прокручивать, но как в симуляторе, так и на iPad список не прокручивается.

Очевидно, что чего-то не хватает, но я Кажется, не могу найти, что это такое. Список заполняется правильно, но он просто не прокручивается.

struct PeopleList : View {    
    @Environment(\.managedObjectContext) var managedObjectContext
     
     @FetchRequest(
        entity: Person.entity(),
         sortDescriptors: [
            NSSortDescriptor(keyPath: \Person.lastName, ascending: true),           
            NSSortDescriptor(keyPath: \Person.firstName, ascending: true)
         ]
     ) var people: FetchedResults<Person>
    
    var body: some View {
        ZStack(alignment: .topLeading) {
            List(self.people, id: \.self) { person in
                Text(person.descriptionForList())                                             
             }                          
        }
        .frame(width: 400, height: 200)
        .modifier(RoundedEdge(width: 4, color: Color(red: 0.6, green: 0.6, blue: 0.6), cornerRadius: 10))
        .padding(10)
    }
}

Вещи, которые ничего не меняли:

  • Удаление ZStack {}
  • Замена списка на простой List(0...100, id: \.self) { item in Text("hey \(item)") } - все равно не будет прокручиваться.
  • Добавление .frame() в сам список ().
  • ( добавлено ) удаление .frame .modifier и .padding ничего не дало.

Речь идет не о (в следующих темах есть ответы на вопросы, но не об этой проблеме):

  • программные c прокрутка
  • отключение прокрутки
  • индикаторы прокрутки
  • ScrollView
  • UIKit

Как я могу отследить, что может мешать прокрутке List ()?

1 Ответ

0 голосов
/ 09 июля 2020

Оказывается, проблема не в чем-либо в структуре, описанной выше; все это было связано с представлением, в котором использовалась эта структура. В частности, когда Color() - даже .opacity(0) - находился в ZStack, сидящем «над» List(), последний перестает прокручиваться. Отображается нормально, но просто не прокручивается.

Этот вопрос описывает то же самое, что происходит, хотя и в несколько других обстоятельствах.

Я оставлю этот вопрос. поскольку кто-то еще может быть в том же месте, где я был, «почему мой List () не прокручивается?», а не «почему мой List () не прокручивается в ZStack?» Надеюсь, версия Swift старше 13 исправит это поведение!

...