SwiftUI TextField и оверлей - PullRequest
       27

SwiftUI TextField и оверлей

1 голос
/ 17 марта 2020

Я хочу добавить вид наложения (Color.black) к textField (цель состоит в том, чтобы уменьшить яркость).

Однако после добавления вида наложения textField не может использоваться (выбрать).

Я пытался разрешить HitTesting (false), но безрезультатно.

Кто-нибудь знает, как решить проблему?

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

Ответы [ 2 ]

1 голос
/ 17 марта 2020

, чтобы уменьшить яркость, используйте модификатор .brightness!

TextField("title", text: $txt).brightness(0.5)

Как правило, сочетание .brightness, .opacity, .foregroundColor, .background помогает вам настроить внешний вид для ваших нужд.

Для изменения стиля курсора используйте .accentColor

1 голос
/ 17 марта 2020

Наложения создают дополнительный вид перед 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)
            )
    }
}
...