SwiftUI व्यू कंटेंट लेआउट अप्रत्याशित रूप से पॉप / जंप पर दिखाई देता है?


16

जब किसी प्रपत्र, या सूची (समूहीकृत) के साथ एक नए दृश्य में नेविगेट किया जाता है, तो सामग्री नेविगेशन दृश्य शीर्षक के नीचे से लगभग एक चौथाई तरह से दिखाई देती है, फिर बाद में लगभग आधे सेकंड में सही स्थान पर "पॉप" करती है। बहुत बदसूरत। यकीन नहीं होता कि यह एक स्विफ्टयूई बग है या मैं गलत तरीके से कुछ संरचना कर रहा हूं?

मैंने सिम्युलेटर और डिवाइस दोनों पर एक ही परिणाम के साथ इसका परीक्षण किया है।

सोच रहा था कि नेविगेशन लिंक को संभालने के तरीके से इसका कोई लेना-देना है? जब कंटेंटव्यू दिखाई देता है, तो हर नेविगेशन लिंक अपने गंतव्य दृश्य पर इनिट () कहता है। मेरे लिए यह कोई मतलब नहीं है, गंतव्य init () केवल उस क्षण को नहीं कहा जाना चाहिए जिसे उपयोगकर्ता वास्तव में नेविगेशन लिंक पर क्लिक करता है?

मैंने इसे एक शीट के साथ भी आज़माया है और यह समस्या शीट के साथ मौजूद नहीं है, केवल तब जब समूह या रूप में स्टाइल की गई सूचियों के साथ नेविगेशन लिंक का उपयोग किया जाता है।

एक नए एकल दृश्य अनुप्रयोग से कोड:

struct ContentView: View {

    var body: some View {
        NavigationView {
            NavigationLink(destination: TestView()) {
                Text("Test Link")
            }
        .navigationBarTitle("Content View")
        }
    }

}

struct TestView: View {

    var body: some View {
        Form {
            Text("Test View")
        }
        .navigationBarTitle("Test View")
    }

}

जवाबों:


10

शीर्ष लेख के साथ एक अनुभाग प्रदान करना समस्या को हल करता है, भले ही पाठ रिक्त हो। हालांकि यह नेविगेशन शीर्षक और पहली पंक्ति के बीच एक अंतर छोड़ देगा।

समूह के रूप में स्टाइल और सूचियाँ दोनों के साथ काम करता है।

struct TestView: View {

    var body: some View {
        Form {
            Section(header: Text("")) {
                Text("Test View")
            }
        }
        .nvigationBarTitle("Test View")
    }
}

इस पोस्ट में दोनों समाधानों की कोशिश की, अभी भी हो रहा है। और क्या हो सकता है? कितना अजीब।
लाकबो

0

मुझे एक ListedListStyle सूची से नेविगेशनलिंक के माध्यम से धकेले जाने वाली सूची के साथ यह समस्या थी। जब आप ऐसा करते हैं, तो ऐसा लगता है कि स्विफ्टयूआई पुश की गई सूची को भी समूहीकृत मानता है। बस इस सूची में काम करना चाहिए सूची रीसेट करना:

List { ... }.listStyle(DefaultListStyle())
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.