macos - SwiftUI MagnificationGesture 在 Mac 上无法正常工作

标签 macos swiftui magnification

我在 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/

相关文章:

OSX 10.6.6 上的 c++ boost 1_46_1。不链接

macos - 在 OSX 上更新 emacs

swiftui - fatal error : @SceneStorage is only for use with SwiftUI App Lifecycle. : file SwiftUI, 第 0 行

ios - ScrollView 中的 SwiftUI 动画不起作用

swift - 如何在NSDatePicker中正确使用rangeDataMode?

macos - shell脚本中的Automator变量

ios - SwiftUI - 如何在图像上添加前景线性渐变

c# - 使用从 WinForms 到 WPF 的放大 API

d3.js - 如何实现D3图表的放大方 block 效果?

javascript - 带有jquery的圆形旋转/放大菜单