मैं एक ही चीज़ को पूरा करने की कोशिश कर रहा हूं। विधि मैं यह करने के उपयोग कर रहा हूँ निम्नलिखित अवधारणाओं पर आधारित है:
- 64 अंक की ऊंचाई के साथ एक पृष्ठभूमि छवि दोनों UINavigationBar और UIStatusBar भर जाएगा।
- 44 अंकों की ऊंचाई वाला एक पृष्ठभूमि छवि UINavigationBar भर जाएगी और UIStatusBar काला छोड़ देगी।
- आप वर्तमान नेविगेशन नियंत्रक के दृश्य के शीर्ष पर एक सबव्यूव जोड़ सकते हैं और यह UIStatusBar के नीचे बैठेगा।
तो, पहले, आप दो छवियों के अपने वांछित UINavigationBar देखो के साथ बनाने की जरूरत:
नेविगेशन पट्टी और स्थिति पट्टी (ImageA) को कवर करने के लिए एक 640x128px छवि
और नेविगेशन बार को कवर करने के लिए 640x88px छवि है लेकिन स्टेटस बार काला छोड़ दें (छवि बी)।
application:didFinishLaunchingWithOptions:
विधि में, [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"ImageA.png"] forBarMetrics:UIBarMetricsDefault];
पक्ष मेनू खोलने के लिए, आप UINavigationBar स्विच करना चाहते हैं तो यह का उपयोग करता जा रहे हैं शुरू होता है के साथ ImageA के साथ अपने UINavigationBar की पृष्ठभूमि सेट ImageB और एक दृश्य बनाएं जिसे आप UIStatusBar के नीचे जोड़ देंगे। यहाँ सिर्फ इतना है कि ऐसा करने के लिए कुछ नमूना कोड है:
// Add a property for your "temporary status bar" view
@property (nonatomic, strong) UIView *temporaryStatusBar;
और कोड जहां पक्ष मेनू खोलने के लिए शुरू होता है में:
// Create a temporary status bar overlay
self.temporaryStatusBar = [[UIView alloc] initWithFrame:[[UIApplication sharedApplication] statusBarFrame]];
self.temporaryStatusBar.backgroundColor = [UIColor yourColor];
[self.navigationController.view addSubview:self.temporaryStatusBar];
// Update both the current display of the navigationBar and the default appearance values
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"imageB.png"] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"imageB.png"] forBarMetrics:UIBarMetricsDefault];
[self.navigationController.navigationBar setNeedsDisplay];
पक्ष मेनू खुला एनिमेट होने, या उपयोगकर्ता के रूप में मेनू धूपदान के रूप में , आपको बस इतना करना है कि UIStatusBar ओवरले के अल्फा स्तर को समायोजित करें। जब साइड मेनू पूरी तरह से खुला होता है, तो UINavigationBar में छवि बी की पृष्ठभूमि छवि के रूप में होना चाहिए और UIStatusBar ओवरले में 0 का अल्फा होना चाहिए।जब साइड मेनू बंद हो जाता है, तो आप छवि ए के साथ UINavigationBar पृष्ठभूमि को प्रतिस्थापित करना चाहते हैं और UIStatusBar ओवरले को हटा दें।
मुझे बताएं कि यह आपके लिए काम करता है या नहीं!
स्रोत
2013-09-26 20:15:18
क्या यह स्केल आईपैड पर है जहां स्क्रीन पोर्ट्रेट और लैंडस्केप ओरिएंटेशन दोनों में व्यापक है? – Aaron
@Aaron मुझे यकीन नहीं है - मैंने इसे आईपैड पर परीक्षण नहीं किया है। मुझे लगता है कि यह ठीक ठीक होगा, लेकिन आपको आईपैड के लिए अलग-अलग छवियां प्रदान करनी होंगी, या छवि आकार बदलने के साथ खेलना होगा ताकि यह टाइल्स हो। –
आप कैसे जानते हैं कि साइड मेनू चुना गया है और यह खोला जा रहा है? क्या यह JASidePanels में इसके लिए एक तरीका है? टीएनएक्स – Maziyar