Как увеличить масштаб ScrollView в SwiftUI - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь масштабировать и панорамировать изображение в SwiftUI для приложения Catalyst. PanGesture отсутствует, но ScrollView, похоже, хорошо работает как на iPad, так и на Ma c. Я просто не могу прокручивать увеличенное изображение.

struct TestScrollView: View {
    @State var scale: CGFloat = 1.0
    
    var body: some View {
        VStack {
            ScrollView([.horizontal,.vertical], showsIndicators: false) {
                    Image("image")
                        .resizable()
            }
            .gesture(MagnificationGesture()
            .onChanged({ (scale) in
                self.scale = scale
            }))
                .scaleEffect(self.scale)
        }
    }
}

И со следующим кодом ...

ScrollView([.horizontal,.vertical], showsIndicators: false) {
    Image("large_image")
        .resizable()
        .gesture(MagnificationGesture()
                    .onChanged({ (scale) in
                        self.scale = scale
                    }))
        .scaleEffect(self.scale)
}

... Я получаю это:

тестовое видео

Кажется, он много прокручивается вправо и обрезается с левой стороны.

1 Ответ

0 голосов
/ 14 июля 2020

Вместо этого прикрепите жест к изображению, например

ScrollView([.horizontal,.vertical], showsIndicators: false) {
    Image("large_image")
        .resizable()
        .gesture(MagnificationGesture()
                    .onChanged({ (scale) in
                        self.scale = scale
                    }))
        .scaleEffect(self.scale)
}
...