SwiftUI TextField和覆盖

时间:2020-03-17 04:56:10

标签: swift swiftui overlay textfield

我想在textField中添加一个叠加视图(Color.black)(目的是降低亮度)。

但是,添加叠加视图后,textField无法使用(选择)。

我尝试了allowHitTesting(false),但没有用。

有人知道如何解决问题吗?

TextField(title: StringProtocol, text: Binding<String>)
    .overlay(Color.black.opacity(0.2))

2 个答案:

答案 0 :(得分:1)

叠加层在TextField的前面创建辅助视图。您可以使用背景获得相同的结果。这是代码。希望这会有所帮助。

import SwiftUI

struct ContentView: View {
    @State var name: String = "This is a test."
    var body: some View {
        TextFieldView(name: $name)
    }
}

struct TextFieldView: View {
    @Binding var name: String
    var body: some View {
        TextField("Name", text: $name)
            .background(
                Color.black.opacity(0.2)
            )
    }
}

答案 1 :(得分:1)

要降低亮度,请使用.brightness修饰符!

unsigned long long int

通常,.brightness,.opacity,.foregroundColor和.background的组合可帮助您根据需要调整视觉外观。

要更改光标样式,请使用.accentColor