ScrollView с нижним переходом дает странное поведение?
Просто скопируйте и вставьте код, чтобы увидеть поведение. Я хочу подтвердить, что я делаю что-то не так или это ошибка?
import SwiftUI
struct Stackru13: View {
@State var hide: Bool = false
var body: some View {
VStack {
Spacer()
Button(action: {
self.hide.toggle()
}) {
Text("Hide")
}
Spacer()
if(!hide) {
ScrollView(.horizontal, showsIndicators: false) {
HStack {
ForEach(1...20, id:\.self) {
Text("\($0)")
}
}
}
.frame(height: 50, alignment: .center)
.padding()
.background(Color.red)
.animation(.linear)
.transition(.move(edge: .bottom))
}
}.edgesIgnoringSafeArea(.all)
}
}
struct Stackru13_Previews: PreviewProvider {
static var previews: some View {
Stackru13()
}
}
После запуска кода и нажатия Hide
числа начнут бесконечно дрожать, если я уберу .transition
модификатор вроде все работает нормально.
Также важно отметить удаление .edgesIgnoringSafeArea
модификатор решит эту проблему, но мне нужен этот модификатор.
1 ответ
Я получаю такое же дрожание с вашим кодом на iPhone(от 10 до 11), но не на старых iPhone и iPad. Но если я использую
.frame(height: 70, alignment: .center)
Дрожь исчезает. Я предполагаю, что недостаточно места для рендеринга / компоновки ScrollView с высотой =50 на определенных устройствах / разрешениях.
Использование macos 10.15.5, Xcode 11.5 и 11.6 beta, целевой ios 13.5 и Mac Catalyst. Протестировано на реальных устройствах iPhone и iPad, а также на различных, но не на всех симуляторах.