使用放大手势;如何放大用户手指实际“捏”的位置?

问题描述 投票:0回答:1

我在 SwiftUI 中遇到了与下面相同的问题。

使用捏合手势;如何放大用户手指实际“捏”的位置?

我想我可以通过给

anchor
参数两个手指的中心坐标来解决这个问题。 但我不知道如何到达中心。
我的代码:

scaleEffect

参考:
https://stackoverflow.com/a/58468234/1979953

ios swift swiftui
1个回答
0
投票
import SwiftUI struct MagnificationGestureView: View { @State var scale: CGFloat = 1.0 @State var lastScaleValue: CGFloat = 1.0 var body: some View { Image( systemName: "photo" ) .resizable() .frame( width: 100, height: 100 ) .scaleEffect( self.scale //, anchor: <---- give: the two fingers center position ) .gesture( magnification ) } var magnification: some Gesture { // Can I get the center of the pinch? MagnificationGesture().onChanged { val in let delta = val / self.lastScaleValue self.lastScaleValue = val self.scale = self.scale * delta }.onEnded { _ in self.lastScaleValue = 1.0 } } }

作为

MagnifyGesture
的替代品。
它传递给 

MagnificationGesture

闭包的值是一个结构体,其中包含

onChanged
以及预期的
startAnchor: UnitPoint
您可以将该锚点传递给 

magnification: CGFloat

函数。

    

© www.soinside.com 2019 - 2024. All rights reserved.