текст swiftui, как я могу передать значение bool в func hidden () - PullRequest
1 голос
/ 02 октября 2019

В тексте swiftui есть функция hidden (). Когда я устанавливаю эту функцию, текст становится невидимым. Пока все хорошо. Теперь я хочу, чтобы он был невидимым, только если установлено значение Bool. К сожалению, я не могу передать значение bool.

Text("Bitte Password eingeben")
                    .foregroundColor(.white)
                    .padding(EdgeInsets(top: 50, leading: 5, bottom: 0, trailing: 0))
                    .cornerRadius(5)
                    .textContentType(.password)
                    .hidden()

Ответы [ 2 ]

3 голосов
/ 02 октября 2019

Вы можете вернуть .hidden() версию представления, когда какое-либо состояние включено, как это (обратите внимание, что скрытая версия и не скрытая версия - это два разных типа, поэтому тип ластик необходим - some View означает всеСуществующий из функции должен возвращать тот же тип, который соответствует View):

struct ContentView: View {
  @State var isHidden = false
    var body: some View {
        let text = Text("Bitte Password eingeben")
        .foregroundColor(.white)
        .padding(EdgeInsets(top: 50, leading: 5, bottom: 0, trailing: 0))
        .cornerRadius(5)
        .textContentType(.password)
        return isHidden ? AnyView(text) : AnyView(text.hidden())
    }
}
1 голос
/ 02 октября 2019

Я написал небольшое расширение для View, потому что я нахожу довольно удивительным, что hidden() не принимает параметр:

extension View {

    func isHidden(_ hidden: Bool) -> some View {
        if hidden {
            return self.hidden().eraseToAnyView()
        } else {
            return self.eraseToAnyView()
        } 
    }

    func eraseToAnyView() -> AnyView {
        return AnyView(self)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...