2014-04-05 6 views
6

मैं अपनी नेविगेशन बार 100% पारदर्शी बनने की कोशिश कर रहा हूं, ताकि UINavigationButtonItems केवल दिखाई दे सकें और पृष्ठभूमि (आमतौर पर सफेद) पृष्ठभूमि छवि को दिखाना चाहिए।UINavigationController पारदर्शिता?

मैं

HomeNavigationController *navBar = [[HomeNavigationController alloc] initWithRootViewController:self.myViewController]; 
[navBar.navigationBar setBarTintColor:[UIColor clearColor]]; 
    [navBar.navigationBar setTranslucent:YES]; 

की कोशिश की, हालांकि न तो काम करने के लिए दिखाई देते हैं।

संपादित करें:

का उपयोग

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] 
        forBarMetrics:UIBarMetricsDefault]; 
self.navigationController.navigationBar.shadowImage = [UIImage new]; 
self.navigationController.navigationBar.translucent = YES; 
self.navigationController.view.backgroundColor = [UIColor clearColor]; 

मैं देख सकता हूँ कि यह उम्मीद के रूप में काम, फिर भी आइटम अब भी अदृश्य हैं।


FINALEDIT: आह कोड ऊपर काम करते हैं, सिर्फ यह सुनिश्चित करता है आप पहली बार परीक्षण के बिना उपस्थिति के लिए किसी अन्य परिवर्तनों को लागू नहीं है!

कोड वास्तव में क्या करना है है कि:

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] 
                forBarMetrics:UIBarMetricsDefault]; 

वैकल्पिक रूप से आप एक पारदर्शी छवि सेट कर सकते हैं, लेकिन यह अधिक समझ में आता है। यदि आप सीमा का प्रतिनिधित्व करने वाली कोई पंक्ति नहीं चाहते हैं तो आपको मूल संपादन में दिखाए गए शेष कोड की आवश्यकता होगी।

+0

आप की कोशिश कर सकते [navBar.navigationBar setTintColor: [UIColor colorWithWhite: 1.0 अल्फा: 0.0]; – user2277872

+1

इसे देखें: http://stackoverflow.com/questions/21850622/transparent-uinavigationbar/21850947#21850947, शायद आपकी सहायता करता है। –

+1

यदि आपको अपने UINavigationBar को पूरी तरह से पारदर्शी होने की आवश्यकता है, तो इसे पूरी तरह से छिपाना क्यों न करें, और 'UIBarButtonItems' के बजाय कस्टम 'UIButtons' का उपयोग करें? 'यूआईएनएविगेशनबार्स ',' यूआईटीएबीबार्स 'और' यूटूलबार्स 'की उपस्थिति आईओएस 7 के साथ बदल गई है जिससे इसे कठिन बना दिया जा सकता है और शायद उनकी पारदर्शिता के साथ टिंकर करने की सलाह नहीं दी जाती है। –

उत्तर

6

एक चाल है। बस नेविगेशन बार पृष्ठभूमि में पारदर्शी छवि सेट करें।

UIImage *fakeImage = [UIImage imageNamed:@"transparentImage"]; 
[navigationBar setBackgroundImage:fakeImage forBarMetrics:UIBarMetricsDefault]; 

या

[navigationBar setBackgroundImage:[UIImage new] 
        forBarMetrics:UIBarMetricsDefault]; 
+1

आपको छाया छवि को रिक्त 'UIImage' के समान तरीके से सेट करने की भी आवश्यकता होगी। – voidref