我在 Mac 上的 SwiftUI 中遇到放大手势问题。我正在编写一个 Mac 应用程序,我想缩放 View 。当我运行该程序时,它运行良好几次,然后 onChanged 闭包不再执行。恐怕这是一个错误(或者我完全误解了什么?)。事实上,我在 Reddit 上发现了一个最近的问题,其中有人有完全相同的问题:https://www.reddit.com/r/SwiftUI/comments/sd43rk/im_having_an_issue_with_the_magnificationgesture/
我可以用一个非常简单的 View 重现该问题:
struct ContentView: View {
var body: some View {
Text("Hello, world!")
.padding()
.gesture(MagnificationGesture()
.onChanged({ value in
print(value)
}))
}
}
我该如何解决这个问题?
最佳答案
这是我稍微修改过的代码 - 对我来说它工作得很好,即使在 30 次之后(macOS 12.2beta,Xcode 13.2.1)
struct ContentView: View {
@State private var scale: CGFloat = 1
var body: some View {
Text("Hello, world!")
.scaleEffect(scale)
.padding()
.frame(width: 400, height: 400)
.contentShape(Rectangle())
.gesture(MagnificationGesture()
.onChanged({ value in
scale = value
print(value)
}))
}
}
关于macos - SwiftUI MagnificationGesture 在 Mac 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70934112/