2013-10-03 11 views
5

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

मेरी समस्या यह है कि MapView ठीक से आकार नहीं देगा। अगर मैं इसे स्वयं से एक फ्रेम देता हूं .view.bounds यह नेविगेशन बार/टैब बार के नीचे जाता है - मूल रूप से पूरी स्क्रीन लेना। यह मेरे टॉगल बटन के स्थान को फेंक देता है।

मैंने देखा कि मेरा स्क्रॉलव्यू वही करता है (पृष्ठभूमि रंग और पारदर्शी नेविगेशन बार का उपयोग करके) लेकिन उस पर उप दृश्यों की स्थिति दृश्य क्षेत्र (नेविगेशन बार और टैब बार के बीच) के भीतर रहती है। तो जब मैं अपना टॉगल बटन जोड़ता हूं, तो वे सही जगह पर दिखाते हैं।

जब मैं टॉगल बटन दबाता हूं, तो मैं बटन के मूल दृश्य को अब प्रदर्शित दृश्य (स्क्रॉलव्यू या मैप व्यू) में फिर से असाइन करता हूं। यह हमेशा स्क्रॉल व्यू पर काम करता है लेकिन स्थिति के कारण, जब वे MapView प्रदर्शित होते हैं तो वे नेविगेशन बार के नीचे जा रहे हैं।

मैंने मैन्युअल रूप से MapView के लिए फ्रेम बनाने का प्रयास किया है, लेकिन मुझे अजीब परिणाम मिलते हैं। मैं फ्रेम के लिए इस का उपयोग करें:

CGRect mapFrame = CGRectMake(
    0, 
    (self.navigationController.navigationBar.frame.size.height + [UIApplication sharedApplication].statusBarFrame.size.height), 
    self.view.frame.size.width, 
    (
    self.view.frame.size.height 
    - (self.navigationController.navigationBar.frame.size.height + [UIApplication sharedApplication].statusBarFrame.size.height + self.tabBarController.tabBar.frame.size.height) 
    ) 
); 

मैं तो, ऑटो का आकार बदलने मास्क

[self.mapView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin]; 

लेकिन इस के साथ सेट अगर मैं लैंडस्केप मोड में दृश्य नियंत्रक में प्रवेश - MapView स्क्रीन बंद है। अगर मैं पोर्ट्रेट मोड में प्रवेश करता हूं और फिर परिदृश्य में घुमाता हूं, तो शीर्ष मार्जिन बंद होता है लेकिन लगभग 10 अंक तो यह अभी भी नेविगेशन बार के नीचे जाता है (और टैब बार और मानचित्र दृश्य के नीचे एक दृश्य मार्जिन है)।

मैं मानचित्र दृश्य दृश्य कैसे केवल दृश्य क्षेत्र के भीतर प्रदर्शित कर सकता हूं जैसे स्क्रॉलव्यू करता है? मुझे नक्शा खुद को नेविगेशन बार/टैब बार

उत्तर

13

उह के तहत जाता है, मुझे कुछ मिनट पहले जवाब मिला। मुझे नहीं पता कि यह आईओएस 7 पर डिफ़ॉल्ट व्यवहार क्यों है लेकिन हां, वहां है।

समाधान

[self setEdgesForExtendedLayout:UIRectEdgeNone]; 
[self setAutomaticallyAdjustsScrollViewInsets:NO]; 

बहुत धन्यवाद to the post here

+0

तुम भी जवाब के रूप में चिह्नित करना चाहिए ViewController पर viewDidLoad में जोड़ने के लिए है। :) सहायता के लिए धन्यवाद। – James

+0

धन्यवाद आपका समाधान। – jhondge

संबंधित मुद्दे