swift 如何使某些按钮标签子视图不可删除?

qv7cva1a  于 2023-11-16  发布在  Swift
关注(0)|答案(1)|浏览(145)

我将展示一个非常简单的例子。是否可以使Circle()在不移动Circle()的情况下无法执行,这样如果我按下圆圈,操作就不会执行。我需要这样做的原因有很多。

struct ContentView: View {
    var body: some View {
        Button (action: {}
        ) {
            HStack {
                
                Circle()
                    .frame(width: 80)
                    
                Text("Hello, World!")
            }
           
            
        }
    }
}

字符串
我试了.disabled(true).allowsHitTesting(false),但它不工作。如果它是不可能的,请让我知道

s5a0g9ez

s5a0g9ez1#

为了回答你的具体问题,防止点击圆圈导致按钮被激活的一种方法是在圆圈上覆盖一个虚拟按钮。这样就会消耗所有的手势,否则会激活下面的按钮。像这样:

Button {
    print("button tapped")
} label: {
    HStack {
        Button {
            print("do nothing")
        } label: {
            Circle()
                .frame(width: 80)
        }

        Text("Hello, World!")
    }
}

字符串
如果你能详细说明你为什么要这样做,也许可以提出一个更好的解决方案。

相关问题