स्विफ्टयूआई का उपयोग करते हुए एक दृश्य पदानुक्रम को परिभाषित करते समय, क्या परिभाषा के मुख्य भाग में एक दृश्य का hidden() मान सेट करना संभव है?

उदाहरण के लिए:

var body: some View {
     VStack(alignment: .leading) {
          Text(self.name)
          .font(.headline)
          .hidden()
     }
}

टेक्स्ट ऑब्जेक्ट छुपाएगा, लेकिन मैं दृश्यता को टॉगल करने के लिए एक बूलियन प्रॉपर्टी का उपयोग करना चाहता हूं।

एक टर्नरी ऑपरेटर और दृश्य के अस्पष्टता मूल्य का उपयोग करके ऐसा करने का एक तरीका है, लेकिन मैं कम चालाक समाधान की उम्मीद कर रहा था।

धन्यवाद!

10
Gene Z. Ragan 7 अक्टूबर 2019, 23:22

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप opacity संशोधक का इस प्रकार उपयोग नहीं करना चाहते हैं:

struct ContentView: View {
    @State private var showText = true

    var body: some View {
         VStack(alignment: .leading) {
              Text("Hello world")
                .font(.headline)
                .opacity(showText ? 1 : 0)
         }
    }
}

आप सशर्त रूप से दृश्य को पूरी तरह से हटाने का निर्णय ले सकते हैं:

struct ContentView: View {
    @State private var showText = true

    var body: some View {
         VStack(alignment: .leading) {
            if showText {
                Text("Hello world")
                    .font(.headline)
            }
         }
    }
}

विचार करें कि दोनों तरीकों का व्यापक रूप से SwiftUI में उपयोग किया जाता है। आपके विशिष्ट मामले के लिए मैं ईमानदारी से opacity संशोधक का उपयोग करूंगा, लेकिन हटाना भी ठीक है।

17
matteopuc 7 अक्टूबर 2019, 23:35