为什么我不能使用.cornerRadius()编辑VStack中的TextField?

时间:2019-07-22 18:30:27

标签: swift swiftui

我遇到无法使用TextFieldVStack中编辑.cornerRadius()(除最后一个)的问题时,我正在使用Xcode 11 beta 4进行SwiftUI。

删除MARKED行时,代码运行正常。

struct ParentView: View {
    var body: some View {
        VStack {
            ForEach(0 ..< 3) { index in
                ChildView()
            }
        }
        .cornerRadius(10) // MARKED
    }
}

struct ChildView: View {
    @State var text: String = ""

    var body: some View {
        TextField("", text: $text)
            .textFieldStyle(.roundedBorder)
    }
}

无论如何,不​​会显示任何错误消息。

2 个答案:

答案 0 :(得分:0)

我不确定是否可以向VStack本身添加.cornerRadius()修饰符。为什么不将其添加到ChildView的textField中?

struct ChildView: View {
    @State var text: String = ""

    var body: some View {
        TextField("", text: $text)
            .textFieldStyle(.roundedBorder)
            .cornerRadius(10)
    }
}

答案 1 :(得分:0)

当子视图具有滚动视图或其他交互元素时,设置cornerRadius当前会导致错误行为(对触摸无响应)。

我建议改用.mask(RoundedRectangle(cornerRadius: 10.0))。这是 less 越野车,但仍然无法始终100%正常工作。

还有file feedback