SwiftUI не очень отзывчив на парящие события - PullRequest
0 голосов
/ 06 октября 2019

Я пытаюсь реализовать список, в котором у меня есть 200 или 300 элементов, и я хочу изменить цвет текста в событии наведения мыши. Но приложение начинает показывать задержку на парящих событиях. Проверьте приведенный ниже пример кода:

struct ContentView: View {
    var body: some View {
            VStack {
                ForEach(0...1000, id:\.self) {index in
                    Element()
                }
            }
    }
}
struct Element: View {
    @State private var hover = false

    var body: some View {
        Text("Not a fast hover!")
          .foregroundColor(hover ? Color.blue : Color.white)
          .onHover {_ in self.hover.toggle()}
    }
}

enter image description here

ОБНОВЛЕНИЕ:

Это, кажется, улучшает отзывчивость. Кроме того, если я изменю фон вместо цвета переднего плана, код также будет более отзывчивым.

struct Element: View {
    @State private var hover = false

    var body: some View {
        ZStack {
            Text("Not a fast hover!").foregroundColor(Color.blue)
            Text("Not a fast hover!").opacity(hover ? 0 : 1).foregroundColor(Color.white)
        }
        .frame(width: 200)
        .onHover {_ in self.hover.toggle()}
    }
}

1 Ответ

0 голосов
/ 08 октября 2019

Решением было использование компонента List вместо VStack.

...