Как правильно сделать настраиваемый разделенный вид в SwiftUI? - PullRequest
1 голос
/ 12 апреля 2020

Я впервые пробую 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)
        }
    }
}

Как это выглядит сейчас: [split view screenshot[1]

Это вроде работает, но при перетаскивании ручки это очень глючно, и, кажется, требует много перетаскивания, чтобы достичь определенной точки.

Пожалуйста, сообщите мне, что пошло не так. Спасибо.

...