Я впервые пробую SwiftUI, и я пытаюсь создать представление SwiftUI, которое действует как разделенное представление, с регулируемой ручкой в центре двух представлений.
Вот мой текущий код Пример реализации:
struct ContentView: View {
@State private var gestureTranslation = CGSize.zero
@State private var prevTranslation = CGSize.zero
var body: some View {
VStack {
Rectangle()
.fill(Color.red)
.frame(height: (UIScreen.main.bounds.height / 2) + self.gestureTranslation.height)
RoundedRectangle(cornerRadius: 5)
.frame(width: 40, height: 3)
.foregroundColor(Color.gray)
.padding(2)
.gesture(DragGesture()
.onChanged({ value in
self.gestureTranslation = CGSize(width: value.translation.width + self.prevTranslation.width, height: value.translation.height + self.prevTranslation.height)
})
.onEnded({ value in
self.gestureTranslation = CGSize(width: value.translation.width + self.prevTranslation.width, height: value.translation.height + self.prevTranslation.height)
self.prevTranslation = self.gestureTranslation
})
)
Rectangle()
.fill(Color.green)
.frame(height: (UIScreen.main.bounds.height / 2) - self.gestureTranslation.height)
}
}
}
Как это выглядит сейчас: [
Это вроде работает, но при перетаскивании ручки это очень глючно, и, кажется, требует много перетаскивания, чтобы достичь определенной точки.
Пожалуйста, сообщите мне, что пошло не так. Спасибо.