swiftui - 按钮出现在顶部但不可按下
问题描述
public struct Frontside: View
{
@Binding public var kanatext: String
public var body: some View
{
ZStack{
RoundedRectangle(cornerRadius: 25, style: .continuous)
.foregroundColor(Color.red)
.frame(width: 160, height: 160)
.zIndex(0)
Text(self.kanatext)
.font(.title)
.fontWeight(.black)
.padding(50)
.zIndex(1)
VStack {
Spacer()
HStack {
Button(action: {
print("button pressed")
}) {
Image(systemName: "xmark.circle")
.font(.title)
}
.mask(Circle())
.opacity(0.4)
Button(action: {
print("button pressed")
}) {
Image(systemName: "checkmark.circle")
.font(.title)
}
.mask(Circle())
.opacity(0.4)
}
}
.zIndex(2)
}
}
}
在上面的代码片段中,我使用 Zstack 将闪存卡的不同部分、背景、文本以及正确/错误按钮分层。最上层是按钮,它们显示正确,但由于某种原因,它们实际上不可按下。
解决方案
您是否尝试过使用 onTapGesture?这可能与您使用 ZStack 的事实有关。
尝试类似:
Image(systemName: "checkmark.circle")
.font(.title)
.onTapGesture {
print("button pressed")
}
在这种情况下,不需要将图像包装在按钮中。如果这不起作用,请添加onTapGesture
到您的 VStack 并使其为空。
推荐阅读
- c - eredis 中的 BRPOP 非阻塞
- c++ - 在 unordered_multimap 中准确地迭代每个键一次的有效方法
- vue.js - 为什么一键打开所有扩展卡?
- c++ - 我应该返回什么而不是 std::shared_ptr<>&?
- azure-devops - Azure DevOps:获取并传递 Unix 时间作为变量
- javascript - 为什么 requestHeaders 未定义?
- go - 如何通过 go 的 dep 编译 vegeta?
- python-3.x - 行为找不到步骤文件
- python - 删除二维数组中无序重复项最省时的方法是什么?
- ruby-on-rails - 为什么我被禁止使用 Shopify API Ruby Gem 创建结账