iphone - देखें नीचे UINavigationBar आईओएस 7 के पास छिपा हुआ है



ios uiview (6)

इससे पहले, मैं अपने प्रोजेक्ट के लिए iOS 6.1 का उपयोग कर रहा था। हाल ही में मैंने आईओएस 7 के लिए स्विच किया है। क्योंकि, मुझे बहुत बदलाव आया था, मैंने अपना कोड अपडेट किया था .. लेकिन मैंने एक अजीब व्यवहार देखा है। हर स्क्रीन पर मेरा दृश्य नेविगेशन बार नीचे छिपा हुआ है। Repositioning दृश्य IOS7 के लिए समस्या का निराकरण करता है, लेकिन पुराने आईओएस संस्करणों के लिए समस्याएं पैदा करता है।

क्या कोई मुझे समझा सकता है, इसका कारण क्या है और यह क्यों होता है? आईओएस 7 में क्या बदल गया है जिससे इस समस्या का कारण हो रहा है ??

किसी भी सहायता की सराहना की जाएगी..


Answer #1

आप अपने विचारों को नेविगेशन पट्टी के नीचे जा सकते हैं, आपके दृश्य में नियंत्रक:

self.edgesForExtendedLayout = UIRectEdgeNone;

Answer #2

इस कुंजी को देखें: UIViewControllerBasedStatusBarAppearance

यह आपके ऐप की जानकारी PLIST फ़ाइल में उपयोग किया जाता है और इस रूप में आ जाएगा:

नियंत्रक-आधारित स्थिति बार उपस्थिति देखें

यह आपको स्टेटस बार के प्रदर्शन को नियंत्रित करने की अनुमति देगा। स्थिति सलाखों के लिए एपीआई परिवर्तनों का एक गुच्छा है, नए UIViewController विधियों जैसे दस्तावेजों में एक नज़र डालें।

- (void)prefersStatusBarHidden;


Answer #3

यदि आपको अपने ऐप में पारभासी नेविगेशन बार की ज़रूरत नहीं है, तो आप इसे कोड परिवर्तनों के बिना iOS7 और iOS6 पर ठीक कर सकते हैं।

स्टोरीबोर्ड में अपने नेविगेशन नियंत्रक का चयन करें और फिर "इंस्पेक्टर विशेषताएँ" खोलें फिर "सिमुलेट मेट्रिक" के अंतर्गत "शीर्ष बार" कुछ मान पर सेट होता है, लेकिन "पारभासी" नहीं होता है:

अब आईओएस 6 और आईओएस 7 पर आपके विचारों की स्थिति पहले की तरह ही होगी।


Answer #4

स्विफ्ट 3+:

self.edgesForExtendedLayout = []

Answer #5

मेरे लिए पारदर्शी Navigation Bar का सबसे अच्छा तरीका है छाया चित्र और पृष्ठभूमि को बदलने के लिए बार का चित्र।

navigationController?.navigationBar.isTranslucent = true
navigationController?.navigationBar.backgroundColor = nil
navigationController?.navigationBar.setBackgroundImage(UIImage(named: "navBarBackground")?.resizableImage(withCapInsets: .zero, resizingMode: .stretch), for: .default)  
navigationController?.navigationBar.shadowImage = UIImage()

Answer #6

स्विफ्ट 2.2 में, उपयोग करें

self.edgesForExtendedLayout = .None




navigationbar