2011-06-21 7 views
8

क्या एक आईफोन ऐप के "सामग्री" क्षेत्र को एक बड़े नेविगेशन बार के बारे में पता करने का कोई तरीका है?आईओएस: क्या UINavigationBar लंबा और स्क्रीन के नीचे अन्य विचारों को "धक्का" बनाना संभव है?

इन सवालों के समान:

मैं UINavigationBar पर एक वर्ग को जोड़ने और इसकी ऊंचाई बदलने के लिए नमूना कोड 1 सवाल उपयोग करने के लिए प्रबंधित किया है, और एक सबव्यूव जोड़ा जहां मुझे इसकी आवश्यकता है, लेकिन मैं अपनी ऊंचाई को ध्यान में रखने के लिए UITableView (या वास्तव में कोई सामग्री दृश्य) का कारण बनने का कोई तरीका नहीं देख सकता:

iPhone 4 Simulator Screenshot

+1

+1 "(रंग केवल अलग-अलग विचारों को अलग करने के लिए हैं)" क्योंकि अन्यथा मैं बंद करने के लिए वोट दूंगा :) <- मजाक –

उत्तर

8

पहला सवाल करने के लिए स्वीकार किए जाते हैं जवाब -layoutSubviews में नेविगेशन बार के फ्रेम, जो "ewwwww" से कहीं भी है एकमुश्त गलत करने के लिए पर निर्भर करता है सेट (रंग अलग पहचाना भिन्न प्रकार के दर्शन करने के लिए ही कर रहे हैं) अन्य लेआउट कोड द्वारा की गई धारणाएं।

इसके बजाए, ओवरराइड-साइजटैटफिट्स: एक और उचित आकार लौटने के लिए।

+0

हमारे पास विजेता है! मैं आकार के आकार से आवश्यक आकार वापस करता हूं, और सबकुछ ठीक से बदल जाता है। धन्यवाद! – Drarok

-2

मैं इस बारे में tableView.frame का समायोजन करके जाते हैं, ताकि था कुछ इस तरह:

CGRect navFrame = self.navigationController.navigationBar.frame; 

CGRect tableFrame = self.tableView.frame; 

tableFrame.size.height = tableFrame.size.height - navFrame.size.height; 
tableFrame.origin.y = navFrame.size.height; //move it down by the height covered by the navigation Bar 

self.tableView.frame = tableFrame; 

साथ ही आप अपने अन्य विचारों के साथ ऐसा कर सकता है - बस फ्रेम का समायोजन करके अर्थात।

मुझे इस कंप्यूटर पर एक्सकोड नहीं मिला है, इसलिए मैंने कोड की जांच नहीं की है - बस इसे एक उदाहरण के रूप में लिखा है, इसलिए इसे इस्तेमाल करने से पहले इसे स्वयं जांचें!

+0

यह वास्तव में एक व्यवहार्य दृष्टिकोण नहीं है जैसे ही कुछ अलग-अलग विचार भी हैं। मुझे इसे प्रत्येक व्यू कंट्रोलर पर लागू करना होगा! – Drarok

+0

-1। नेविगेशन नियंत्रक का दृश्य समय-समय पर निर्धारित किया जाएगा (उदा। रोटेशन परिवर्तनों पर); इस तरह लेआउट हैक अक्सर काम करने लगते हैं जब तक कि आप डिवाइस को घूर्णन करने या किसी अन्य वीसी को धक्का देने/पॉप करने जैसी अप्रत्याशित कुछ नहीं करते। मुझे इसे एक अवसर पर करने की ज़रूरत है, लेकिन इसे प्राप्त करने के आम तौर पर अधिक विश्वसनीय तरीके हैं। –

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