Уважаемое сообщество SwiftUI,
Я пытаюсь создать текстовое поле, которое переключает отображение / скрытие с анимацией движения вверх / вниз при нажатии кнопки.
Я нашел этот полезный источник на как это сделать.
Однако, когда я попробовал его на своем собственном коде, он работал только с переключателем отображения, а не с переключателем скрытия (также при запуске на моем iPhone). После полного удаления кода до тех пор, пока он не приведен ниже, я обнаружил, что эта проблема решается, когда я удаляю (фон) цвет на начальном ZStack
.
Я не понимаю, почему это так. Это ошибка SwiftUI или есть какая-то логика? Кроме того, я не уверен, как теперь добавить фон в это окно, чтобы снова не испортить анимацию текстового поля.
У кого-нибудь есть дополнительная информация по этому поводу?
Заранее спасибо!
Бест, Пол
import SwiftUI
struct MatchResultsInput: View {
@State private var show = false
var body: some View {
ZStack {
Color(#colorLiteral(red: 0.8039215803, green: 0.8039215803, blue: 0.8039215803, alpha: 1))
.ignoresSafeArea()
VStack {
Button(action: {
withAnimation {
show.toggle()
}
}) {
Text("Show/Hide button")
.foregroundColor(.white)
.bold()
}
.padding(5)
.background(Color(#colorLiteral(red: 0.2117647059, green: 0.8, blue: 0.5176470588, alpha: 1)))
.clipShape(Capsule())
Spacer()
}
if show {
VStack {
Text("16")
.foregroundColor(.gray)
.font(.system(size: 30))
.bold()
}
.transition(.move(edge: .bottom))
}
}
}
}
struct MatchResultsInput_Previews: PreviewProvider {
static var previews: some View {
MatchResultsInput()
}
}