Показать и скрыть все в VStack
у меня есть обычай
SwiftUI
Посмотреть, где в
HStack
У меня есть два s на противоположных концах.
Мне нужно, чтобы у каждого был свой жест двойного касания, чтобы показывать и скрывать элементы в
VStack
.
Вот что я пробовал:
@State var displayRewind = false
VStack {
Image("rewind")
.frame(width: 74, height: 32, alignment: .center)
.foregroundColor(Color.white)
.opacity(self.displayRewind ? 1 : 0)
Text("x seconds")
.opacity(self.displayRewind ? 1 : 0)
}
.onTapGesture(count: 2) {
withAnimation {
displayRewind.toggle()
}
DispatchQueue.main.asyncAfter(deadline: .now()+1) {
withAnimation {
displayRewind.toggle()
}
}
}
Сейчас с этим ничего не происходит. Если я уберу непрозрачность текста, я увижу текст и могу дважды нажать, чтобы открыть изображение.
Цель состояла бы в том, чтобы показать и скрыть их вместе.
1 ответ
если вы используете opacity=0, это предотвращает событие касания. Это код, который я использую для своего теста, используя непрозрачность = 0,01:
VStack (spacing: 40) {
Image(systemName: "globe")
.frame(width: 74, height: 32, alignment: .center)
.foregroundColor(Color.blue)
Text("x seconds")
}
.opacity(displayRewind ? 1 : 0.01)
.onTapGesture(count: 2) {
withAnimation {
displayRewind.toggle()
}
DispatchQueue.main.asyncAfter(deadline: .now()+2) {
withAnimation {
displayRewind.toggle()
}
}
}