小编Tom*_*mas的帖子

为什么 Text onTapGesture 不适用于 SwiftUI 中的加宽框架?

我的这个测试文件没有按我预期的方式工作。

import SwiftUI

struct SwiftUIView: View {
    
    @State var boolTest = false
    
    var nums = ["1","2","3","4","5","6","7"]
    
    var body: some View {
        VStack {
            ForEach(nums, id: \.self) { num in
                Text("\(num)")
                    .frame(width: 400)
                    .font(.system(size: 70))
                    .foregroundColor(boolTest ? .red : .green)
                    .onTapGesture {
                        boolTest.toggle()
                    }
            }

        }
    }
}

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}
Run Code Online (Sandbox Code Playgroud)

当我点击数字时,前景色会按预期发生变化。但是,我希望能够点击左侧和右侧的区域,Text("\(num)")因此我扩展了框架修改器来进行测试。然而,只有当我直接点击数字或文本时,颜色才会改变。

如何点击数字左侧或右侧的空间并使其改变颜色而不是不执行任何操作?

swiftui swiftui-foreach swiftui-ontapgesture

2
推荐指数
1
解决办法
1261
查看次数

为什么 ForEach 在 SwiftUI 中无法与 onTapGesture 修饰符正确配合使用

我试图弄清楚为什么当仅点击一个元素时 ForEach 数组中的所有元素都会发生变化。

import SwiftUI

struct SwiftUIView: View {
    
    @State var boolTest = false
    
    var nums = ["1","2","3","4","5","6","7"]
    
    var body: some View {
        VStack {
            ForEach(nums, id: \.self) { num in
                Text("\(num)")
                    .font(.system(size: 70))
                    .foregroundColor(boolTest ? .red : .green)
                    .onTapGesture {
                        boolTest.toggle()
                    }
            }
            
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

例如,当我点击包含 1 的视图时,所有其他数字也会改变颜色。我希望能够单击一个数字并且只有该数字改变颜色。

xcode swiftui swiftui-foreach

0
推荐指数
1
解决办法
1093
查看次数

如何在 SwiftUI 中添加弹出菜单视图?

我正在尝试在我的应用程序中实现一个类似于苹果天气应用程序的功能。这是一个照片示例:

在此输入图像描述

从外观上看,它是一个按钮,当用户单击它时,会出现其他内容。那是什么样的 SwiftUI 控件?基本上,什么代码制作了该按钮以及由此出现的小(迷你)菜单?

xcode ios swiftui

-1
推荐指数
2
解决办法
6157
查看次数