SwiftUI ScrollView автоматически добавляет нежелательную анимацию - PullRequest
1 голос
/ 06 мая 2020

У меня проблема с анимацией в SwiftUI ScrollView. Я могу воспроизвести его на игровой площадке с помощью кода, показанного ниже. Я просто хочу анимировать непрозрачность, но она также анимирует масштабирование. Если я использую VStack вместо ScrollView, он работает. Но мне нужно, чтобы его можно было прокручивать.

Кто-нибудь столкнулся с той же проблемой и мог бы дать мне быструю подсказку?

Фактическое поведение: https://giphy.com/gifs/h8DSbS1xZ9PJyHIJrY

import SwiftUI
import PlaygroundSupport

struct ContentView: View {

    @State var showText = 0.0
    var body: some View {
        ScrollView {

        Text("Test")
            .font(.title)
            .opacity(showText)
        Text("Another really really long text")
            .opacity(showText)
        }
    .frame(width: 320, height: 420)
    .background(Color.red)
    .onAppear {
        withAnimation(Animation.easeInOut(duration: 1)) {
            self.showText = 1.0
        }
        }
    }
}

PlaygroundPage.current.liveView = UIHostingController(rootView: ContentView())

1 Ответ

1 голос
/ 06 мая 2020

Вот возможное решение. Протестировано с Xcode 11.4 / iOS 13.4

ScrollView {
    VStack {
        Text("Test")
            .font(.title)
        Text("Another really really long text")
    }
    .fixedSize()
    .opacity(showText)
}
...