मुझे पता है कि अधिक व्यू कंट्रोलर (नेविगेशन बार) की उपस्थिति इसकी ऊंचाई से UIView को नीचे धकेलती है। मुझे यह भी पता है कि यह ऊंचाई = 44 पीएक्स है। मुझे यह भी पता चला है कि यह धक्का नीचे बनाए रखता है [self.view].frame.origin.y = 0
।
तो मैं इस नेविगेशन बार की ऊँचाई का निर्धारण कैसे करता हूँ, केवल एक स्थिरांक पर सेट करने के अलावा?
या, छोटा संस्करण, मैं यह कैसे निर्धारित करूं कि मेरा UIView नेविगेशन बार के साथ शीर्ष पर दिखाई दे रहा है?
बिजली का बल्ब आने लगा। दुर्भाग्य से, मैंने समस्या को ठीक करने के लिए एक समान तरीका नहीं खोजा है, जैसा कि नीचे वर्णित है।
मेरा मानना है कि मेरी पूरी समस्या मेरे ऑटोरेस्पोन्डिंग मास्क पर है। और जिस कारण से मैंने निष्कर्ष निकाला है कि एक ही लक्षण मौजूद हैं, एक UIWebView के साथ या उसके बिना। और वह लक्षण यह है कि पोर्ट्रेट के लिए सब कुछ आड़ू है। लैंडस्केप के लिए, नीचे-सबसे यूआईब्यूटॉन टैबबर के पीछे नीचे चबूतरे।
उदाहरण के लिए, एक UIView पर, मेरे पास ऊपर से नीचे तक है:
UIView - दोनों स्प्रिंग्स सेट (डिफ़ॉल्ट केस) और कोई स्ट्रट्स नहीं है
UIScrollView - यदि मैं दो स्प्रिंग्स सेट करता हूं, और बाकी सब कुछ (UIView की तरह) साफ़ करता हूं, तो UIButton इसके ठीक ऊपर वाली वस्तु पर घुसपैठ करता है। अगर मैं सब कुछ साफ कर दूं, तो यूबॉटन ठीक है, लेकिन स्टेटबेर के पीछे बहुत ऊपर छिपा सामान केवल ऊपर की स्ट्रेट को सेट करता है, यूआईब्यूटन टैब बार के पीछे नीचे की ओर पॉप करता है।
UILabel और UIImage अगले लंबवत - शीर्ष अकड़ सेट, हर जगह लचीला
UIWebView वाले कुछ के लिए चित्र को पूरा करने के लिए:
UIWebView - स्ट्रट्स: टॉप, लेफ्ट, राइट स्प्रिंग्स: दोनों
UIButton - हर जगह लचीला, कुछ भी नहीं सेट
यद्यपि मेरा प्रकाश बल्ब मंद है, आशा प्रतीत होती है।
कृपया मेरे साथ रहें क्योंकि मुझे कम उत्तर वाली टिप्पणी के लिए अधिक कमरे की आवश्यकता थी।
समझने की कोशिश करने के लिए धन्यवाद कि मैं वास्तव में मछली पकड़ने के लिए क्या कर रहा हूं ... इसलिए यहां जाता है।
1) प्रत्येक UIViewController (एक TabBar ऐप) में एक UIImage, कुछ पाठ और जो भी शीर्ष पर है। एक अन्य आम भाजक तल पर एक UIButton है। कुछ UIViewControllers पर मेरे पास UIButton के ऊपर UIWebView है।
तो, UIImage, पाठ आदि UIWebView (कुछ पर) UIButton
उपरोक्त सभी को घेरना एक UIScrollView है।
2) उन लोगों के लिए जिनके पास UIWebView है, इसका ऑटोरेस्पोन्गिंग मास्क जैसा दिखता है:
—
|
—
^
|
|
| - | - ---- → | - | | | V UIButton के मास्क में कुछ भी नहीं है, अर्थात, हर जगह लचीला
मेरे -व्यूडीडलड के भीतर, मैं अपने -repositionSubViews को कॉल करता हूं जिसके भीतर मैं निम्नलिखित कार्य करता हूं:
अगर कोई UIWebView नहीं है, तो मैं UIButton को केंद्र में रखने के अलावा कुछ नहीं करता, जिसे मैंने IB के साथ रखा था।
अगर मेरे पास UIWebView है, तो मैं इसकी * सामग्री * ऊंचाई निर्धारित करता हूं और इसकी फ़्रेम को पूरी सामग्री को संलग्न करने के लिए निर्धारित करता हूं।
UIScrollView *scrollViewInsideWebView = [[webView_ subviews] lastObject];
webViewContentHeight = scrollViewInsideWebView.contentSize.height;
[webView_ setFrame:CGRectMake(webViewOriginX, webViewOriginY,
sameWholeViewScrollerWidth, webViewContentHeight)]
एक बार जब मैं ऐसा कर लेता हूं, तो मैं प्रोग्रामेटिक रूप से यूआईबूटन को नीचे धकेल देता हूं ताकि वह यूआईब्यूव्यू के नीचे रखा जाए।
सब कुछ काम करता है, जब तक कि मैं इसे पोर्ट्रेट से लैंडस्केप तक नहीं घुमाता।
मैं -didRotateFromInterfaceOrientation में अपने -repositionSubViews को कॉल करता हूं।
मेरे UIWebView की सामग्री ऊंचाई रोटेशन के साथ क्यों नहीं बदलती है?
पोर्ट्रेट से लैंडस्केप तक, सामग्री की चौड़ाई का विस्तार होना चाहिए और सामग्री की ऊंचाई को छोटा करना चाहिए। यह नेत्रहीन रूप से इसे करना चाहिए, लेकिन मेरे NSLog के अनुसार नहीं।
वैसे भी, UIWebView के साथ या उसके बिना, बटन जब मैंने लैंडस्केप मोड में टैबबार के नीचे ले जाने के बारे में बात की है, लेकिन इसे देखने के लिए स्क्रॉल नहीं किया जाएगा। मैं इसे TabBar के पीछे देखता हूं जब मैं "सख्ती" स्क्रॉल करता हूं, लेकिन तब यह TabBar के पीछे "वापस गिर जाता है"।
निचला रेखा, यह अंतिम कारण है कि मैंने TabBar और नेविगेशनबार की ऊंचाई के बारे में पूछा है क्योंकि TabBar अपने आप को UIView के निचले भाग में स्थित करता है और नेविगेशनबार UIView को नीचे धकेलता है।
अब, मैं एक टिप्पणी या दो को यहाँ जोड़ने जा रहा हूँ क्योंकि वे पहले से समझ में नहीं आते।
UIWebView के बिना, मैं सब कुछ छोड़ देता हूं, जैसा कि आईबी द्वारा देखा गया है।
UIWebView के साथ, मैं UIWebView के फ्रेम को बढ़ाता हूं। इसके contentHeight को बढ़ाता हूं और आसपास के UIScrollView की ऊंचाई को भी समायोजित करता है जो सभी उप-विचारों को घेरता है।
खैर, यह लो।