दिलचस्प पोस्ट
कैसे iPhone में UISwitch बटन को अनुकूलित करने के लिए? स्ट्रिंग को मेमोरी कैसे बचाता है? पायथन में बैश 'स्रोत' का अनुकरण करना Jquery में बंद करने के लिए बाहर मेनू पर क्लिक करें पायथन में बहुत बड़ी संख्या को संभालना सबसे भ्रामक पार्स के बारे में एक भ्रमित विवरण LINQ तरीकों की रन-टाइम जटिलता (बिग-ओ) पर क्या गारंटी है? ग्राफ़ एपीआई 'गलत' या 'असम्बद्ध प्राप्त अनुरोध' सार्वजनिक फेसबुक पेज का उपयोग करता है Std :: array को कैसे प्रारंभ करें <टी, एन> सुंदर ढंग से अगर टी डिफ़ॉल्ट रूप से निर्मित नहीं है? क्या एक सी प्रीप्रोसेसर के समान एक सी + + प्रीप्रोसेसर है? पायथन में क्लास 'सदस्य चर तक पहुंचना? रूबी में 'बंदर पैचिंग' वास्तव में क्या मतलब है? एसक्यूएल डायनेमिक पिवट – कॉलम का ऑर्डर कैसे करें क्या मैं इसे C ++ मैक्रो को फिर से परिभाषित कर सकता हूँ? MySQL में –secure-file-priv में कैसे निपटना चाहिए I

IPhone नेविगेशन बार पर पृष्ठभूमि छवि कैसे जोड़ें?

मैं एक छवि पृष्ठभूमि जोड़ना चाहता हूं, मेरे नेविगेशन बार में

क्या यह सही है ?

//set custom background image UIImageView *backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"NavigationBackground.png"]]; [self.navigationBar insertSubview:backgroundView atIndex:0]; [backgroundView release]; 

वेब के समाधान से एकत्रित समाधान "IPhone नेविगेशन बार पर पृष्ठभूमि छवि कैसे जोड़ें?"

यहां लिखित लिंक @ लिविएयर का कोड है। इस कोड को @implementation rootviewController ठीक ऊपर @implementation rootviewController नियंत्रक में पेस्ट करें

 @implementation UINavigationBar (CustomImage) - (void)drawRect:(CGRect)rect { UIImage *image = [UIImage imageNamed:@"NavigationBar.png"]; [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; } @end 

आईओएस 5 के अनुसार, ऐसा करने का एक आधिकारिक तरीका है। ( आईओएस डेवलपर लाइब्रेरी देखें)

 // someplace where you create the UINavigationController if ([navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) { UIImage *image = [UIImage imageNamed:@"NavigationBar.png"]; [navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; } 

लेकिन फिर भी, पिछली संगतता के लिए पुराने कोड को बनाए रखें जब तक आप वास्तव में आईओएस 4 और नीचे नहीं खा रहे हों

आपका कोड अकेले ऐसा नहीं करेगा, आपको काम करने के लिए एक श्रेणी लिखना होगा। जिस तरीके से आपको यह करना चाहिए, उसके बारे में दो दृष्टिकोण हैं: सबसे पहले एक छवि को अपने UINavigationBar का एक UINavigationBar और इसे अपने प्रत्येक UIViewController के viewDidAppear विधि में सामने लाने के लिए शामिल है। यह हालांकि सही UIBarButtonItem को कवर करने के साथ कुछ मुद्दों की सूचना UIBarButtonItem । अन्य विधि में ओवरराइड करना शामिल है

- (void)drawRect:(CGRect)rect

और वहाँ छवि को ड्राइंग इन दोनों को बड़े पैमाने पर इस ब्लॉग चर्चा में शामिल किया गया है ..

आसान तरीका सिर्फ UINavigationBar परत सामग्री सेट है

 NSString *barBgPath = [[NSBundle mainBundle] pathForResource:@"mybgimage" ofType:@"png"]; [nBar.layer setContents: (id)[UIImage imageWithContentsOfFile: barBgPath].CGImage]; 

डाउनगेस यह है कि बटन सही टिंट से उत्पन्न नहीं होते हैं, लेकिन आप अपनी बीजी छवि के सबसे निकटतम जो भी हो, उसमें नौबार का रंग सेट कर सकते हैं और टिंट का ध्यान रखना चाहिए।

मैं ऐसा कुछ करना पसंद करता हूं

 + (void)Generalstyle { //navigationbar UINavigationBar *navigationBar = [UINavigationBar appearance]; [navigationBar setBackgroundImage:[UIImage imageNamed:@"navigation.png"] forBarMetrics:UIBarMetricsDefault]; } 

और में

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[self class] Generalstyle]; } 

.h फ़ाइल:

 + (void) Generalstyle; 

आईओएस 5 में, मैंने AppDelegate.m में नेविगेशन बार पृष्ठभूमि छवि (सभी नेविगेशन बार छवि के लिए) सेट की है:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [application setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:NO]; UIImage *navBarBackgroundImage = [UIImage imageNamed:@"nav_bg"]; [[UINavigationBar appearance] setBackgroundImage:navBarBackgroundImage forBarMetrics:UIBarMetricsDefault]; return YES; } 

जब आईफोन 5 आता है तो हमें डिवाइस के दोनों प्रकार को सेट करना होगा। तो इसका उपयोग करें

 if([self.navigationController.navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) { //iOS 5 new UINavigationBar custom background [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navbg_ForiPhone5_Imagename.png"] forBarMetrics: UIBarMetricsDefault]; } else { [self.navigationController.navigationBar insertSubview:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"navbg_ForOtherIphone_Imagename.png"]] atIndex:0]; } 

अधिक जानकारी के लिए इस लिंक पर जाएं

यह एक आईओएस 6 और 7 में ठीक काम कर रहा है

 UINavigationBar *navBar = [[self navigationController] navigationBar]; UIImage *backgroundImage = [UIImage imageNamed:@"nav-bar-background-normal"]; [navBar setBackgroundImage:backgroundImage forBarMetrics:UIBarMetricsDefault]; 

आप उस श्रेणी को भी जोड़ सकते हैं जो UINavigationBar वर्ग को बढ़ाता है और ड्रॉरेक्ट को ओवरराइड करता है: श्रेणी में विधि।

मैंने जो किया था, उस छवि के साथ एक UIImage बनाया गया था जो मैं चाहता था और इस तरह से नेविगेशन बार में जोड़ा।

 UIImage *image = [UIImage imageNamed:@"yourImage.png"]; [[UINavigationBar appearance] setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 

स्विफ्ट संस्करण :

 let navBar = UINavigationBar.appearance(); navBar.setBackgroundImage(UIImage(named: "yourImageName"), forBarMetrics: .Default); 

नेविगेशन बार पृष्ठभूमि छवि को जोड़ने के दौरान, आपको इसके आयामों के बारे में बहुत सावधान रहना चाहिए। कृपया सुनिश्चित करें कि आपके पास विभिन्न स्क्रीन आकारों के लिए निम्नलिखित आयाम हैं।

1) पृष्ठभूमि => 320×44
2) background@2x.png => 640×88 // iPhone5 के लिए और रेटिना उपकरणों के लिए उपयोग किया जाता है
3) background@3x.png => 1334×183 // आईफोन 6 के लिए उपयोग किया जाता है

पृष्ठभूमि छवि जोड़ने के लिए और नेविगेशन बार की पृष्ठभूमि छवि में किसी भी टाइलिंग से बचने के लिए निम्न कोड का उपयोग करें।

 [self.navigationController.navigationBar setBackgroundImage:[[UIImage imageNamed:@"background"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0) resizingMode:UIImageResizingModeStretch] forBarMetrics:UIBarMetricsDefault]; 

नेविगेशन बार पर छवि दिखाने के लिए अपने ऐपडिनेगल क्लास में यह कोड आज़माएं। यह आपको बहुत मदद करेगा

 [[UINavigationBar appearance] setBackgroundImage:[[UIImage imageNamed:@"headerImg.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)] forBarMetrics:UIBarMetricsDefault];