2011-08-11 13 views
8

पर UINavigationBar autoresizing आम तौर पर में रोकने के लिए, लैंडस्केप मोड पर, नेविगेशन नेविगेशन नियंत्रक द्वारा नियंत्रित बार स्वचालित रूप से अपने आकार छोटे कम।लैंडस्केप

लेकिन मुझे लगता है कि autoresizing रोकना चाहते हैं।

पहले, मैं छिपा नेविगेशन पट्टी सेट और नेविगेशन नियंत्रक द्वारा नियंत्रित नहीं एक और नेविगेशन पट्टी का इस्तेमाल किया। तो, मैंने समस्या हल की। लेकिन मैं नेविगेशन नियंत्रक द्वारा नियंत्रित नहीं किए गए एक और बार का उपयोग किए बिना नेविगेशन बार पर लैंडस्केप पर ऑटोरेसाइजिंग को अक्षम करने का तरीका ढूंढना चाहता हूं। बनाया है, ऊंचाई अब तय रहता श्रेणी के साथ

@implementation UINavigationBar (customHeight) 

- (CGSize)sizeThatFits:(CGSize)size 
{ 
    CGSize newSize = CGSizeMake(self.frame.size.width,44); 
    return newSize; 
} 

@end 

44 पर - मैं भी कहीं भी श्रेणी आयात करने की आवश्यकता नहीं है:

+0

कि आपको यह क्या करना चाहते हैं के लिए काम करेंगे? यह मानक आईओएस व्यवहार है। इस मुद्दे को हल करती है जबकि) – nielsbot

+0

@nielsbot परिदृश्य में iOS 7 सफारी पर एक नजर डालें। आपको इसे सबक्लास में करना चाहिए। यहां अधिक पढ़ें: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html – fumoboy007

उत्तर

5

मैं UINavigationBar पर एक वर्ग बनाने के द्वारा इस हल किया।

मेरे एप्लिकेशन स्टोरीबोर्ड का उपयोग करता है, लेकिन मैं बहुत यकीन है कि यह किसी भी तरह से काम करेगा हूँ।

+2

, यह कोशिश करते हैं और विधि अधिभावी प्रयोजनों के लिए श्रेणियों का उपयोग करने के लिए अच्छा अभ्यास नहीं है, – Ricky

+1

इस समाधान नेविगेशन पट्टी के लिए काम करता है, लेकिन यह से 10px या तो मेरे उपकरण पट्टी ले जाता है दृश्य के नीचे ... – dot

+2

यह बार में तत्वों को लंबवत केंद्रित नहीं होने का कारण बनता है। इसे हल करने का कोई तरीका? – Joey

2

यह आईओएस 8

extension UINavigationBar { 
    public override func sizeThatFits(size: CGSize) -> CGSize { 
     var newSize = CGSizeMake(UIScreen.mainScreen().bounds.width, 44) 
     return newSize 
    } 
} 
+2

कृपया पूछताछ करने वाले और हम सभी को जल्द ही समझाकर _how और क्यों_ यह काम करता है। इस तरह, आप न केवल jinbruce627 द्वारा, बल्कि अन्य उपयोगकर्ताओं से भी ऊपर उठने की उम्मीद कर सकते हैं। –

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