SwiftUI中同时实现放大手势和拖动手势

3
Apple Maps应用程序允许同时使用两个手指拖动和放大。我尝试使用SwiftUI手势实现此功能gestures。同时旋转和放大的工作正常,但同时拖动和放大却不行。也许有一种方法可以符合Gesture protocol以实现自定义行为?

1
对于手势不起作用的任何人,请确保.roationEffect(如果使用roationgesture)或.scaleEffect(对于manginifcationGesture)修饰符放置在.gesture修饰符之前!否则会出现无限循环。 - charelf
2个回答

3

我无法实现同时拖动和放大。根据我的经验,DragGesture仅适用于一个触摸,并且一旦屏幕上有两个触摸,它就会结束。在SwiftUI中,似乎只有需要相同数量的触摸才能同时进行手势操作。还没有直接访问触摸事件以实现自定义手势识别器的方法。希望这在未来会改变。


0

我有同样的问题。看看这个解决方案--> https://betterprogramming.pub/gestures-in-swiftui-e94b784ecc7

他使用了:"同时"

        .gesture(MagnificationGesture()
        .onChanged { value in
        self.magnificationValue = value
        }
        .simultaneously(with: RotationGesture().onChanged { value in
                self.rotationValue = value
        }))

希望这能有所帮助。

1
这是同时放大和旋转,而不是放大和拖动。 - Brett
抱歉,是的,我没有拖动,确认同时使用拖动时它没有起作用? - kopeezie
不支持拖拽操作 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接