swiftui text,如何将布尔值传递给func hidden()

swiftui text,如何将布尔值传递给func hidden(),swiftui,Swiftui,在swiftui文本中有一个名为hidden()的函数。设置此函数时,文本不可见。到目前为止一切都很好。现在我希望它只有在设置Bool值时才是不可见的。不幸的是,我不能传递布尔值 Text("Bitte Password eingeben") .foregroundColor(.white) .padding(EdgeInsets(top: 50, leading: 5, bottom: 0, trailing: 0

在swiftui文本中有一个名为hidden()的函数。设置此函数时,文本不可见。到目前为止一切都很好。现在我希望它只有在设置Bool值时才是不可见的。不幸的是,我不能传递布尔值

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

当某些状态像这样启用时,您可以返回视图的
.hidden()
版本(请注意,隐藏版本和非隐藏版本是两种不同的类型,这就是为什么需要类型擦除器--
某些视图
意味着函数中的所有存在都必须返回符合视图的相同类型):


当某些状态像这样启用时,您可以返回视图的
.hidden()
版本(请注意,隐藏版本和非隐藏版本是两种不同的类型,这就是为什么需要类型擦除器--
某些视图
意味着函数中的所有存在都必须返回符合视图的相同类型):


我在
视图
上写了一个小小的扩展,因为我发现
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)
    }
}

我在
视图
上写了一个小小的扩展,因为我发现
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)
    }
}

这是一个非常好的小扩展,尽管我需要将“橡皮擦到任何视图”转换为“任何视图(self.hidden())”等。为了让它工作,这是一个非常好的小扩展,尽管我需要将“橡皮擦到任何视图”转换为“任何视图(self.hidden())”等