2013-09-27 6 views
7

मैं निम्नलिखित ट्यूटोरियल मेरी नेविगेशन पट्टी नीचे ले जाने के का पालन किया है तो यह xcode 5/iOS7 में स्थिति पट्टी में शामिल नहीं है:Xcode में स्थिति पट्टी के पीछे नेविगेशन बार खिंचाव बनाओ 5/iOS7

Status bar and navigation bar issue in IOS7

लेकिन अब आईओएस 7 में शीर्ष पर एक रिक्त स्थान है जहां स्टेटस बार होगा और मैं नेविगेशन बार को भी इस क्षेत्र को भरने के लिए

उदाहरण के लिए, फेसबुक/ट्विटर/इंस्टाग्राम आईओएस 7 ऐप्स में नेविगेशन बार पृष्ठभूमि है स्टेटस बार के पीछे भी। मुझे यह कैसे हासिल होगा?

क्षमा करें यदि मैं स्पष्ट, लेकिन वास्तव में इस हल कर

आने के लिए उत्सुक नहीं किया जा रहा हूँ धन्यवाद!

+0

आप कस्टम नेविगेशन पट्टी या में निर्मित का उपयोग कर रहे हैं? –

उत्तर

0

आप आईओएस में UIStatusBar के पीछे एक कस्टम पृष्ठभूमि छवि के साथ एक UINavigationBar फैलाने के लिए 7 पर विचार निम्नलिखित चाहते हैं:

  1. UIStatusBar पारदर्शी है के रूप में यह है।
  2. सेट barPositionको UINavigationBar की संपत्ति UIBarPositionTopAttached
  3. iOS 7 (यदि UIBarPositionTopAttached) iOS 7 करने के लिए पिछले की तुलना में अलग आयाम में UINavigationBar पृष्ठभूमि छवियों और आप उन्हें उपयोग करने के लिए है: ऊंचाई अब है 64 अंक

कोड में (iPhone केवल):

// Image needs 64 points height 
NSString* navBarPortraitBackgroundPath = [[NSBundle mainBundle] pathForResource:@"navBarPortraitBackground" ofType:@"png"]; 
NSString* navBarLandscapeBackgroundPath; 


if(UIScreen.mainScreen.bounds.size.height == 568){ 

    // Image needs 64 points height 
    navBarLandscapeBackgroundPath = [[NSBundle mainBundle] pathForResource:@"navBarWideLandscapeBackground" ofType:@"png"]; 

} else { 

    // Image needs 64 points height 
    navBarLandscapeBackgroundPath = [[NSBundle mainBundle] pathForResource:@"navBarLandscapeBackground" ofType:@"png"]; 

} 


[[UINavigationBar appearance] setBackgroundImage:[UIImage imageWithContentsOfFile:navBarPortraitBackgroundPath] forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault]; 
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageWithContentsOfFile:navBarLandscapeBackgroundPath] forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsLandscapePhone]; 

यदि आप केवल UINavigationBar के पृष्ठभूमि रंग में बदलना चाहते हैं तो यह स्वचालित रूप से UIStatusBar के पीछे विस्तारित होगा।

कोड में:

[UINavigationBar appearance].barTintColor = [UIColor redColor]; 
+6

आप शायद यह बताना चाहते हैं कि बारपोजिशन को वास्तव में कैसे सेट किया जाए। – weienw

+0

बारपोज़िशन केवल पढ़ने के लिए – jjxtra

21

आप UINavigationBar की barPosition सेट करना चाहते हैं। metod: अपने ViewController प्रोटोकॉल UINavigationBarDelegate के अनुरूप और positionBar को लागू करते हैं

:

आप कोड में यह कर सकते हैं। (प्रोटोकॉल है कि तुम सच की जरूरत UIBarPositioningDelegate है, लेकिन UINavigationBarDelegate यह विस्तार करता है।)

@interface SampleViewController() <UINavigationBarDelegate> 
@property (weak, nonatomic) IBOutlet UINavigationBar *navigationBar; 
@end 

@implementation SampleViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    _navigationBar.delegate = self; 
} 

- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar { 
    return UIBarPositionTopAttached; 
} 
@end 

या स्टोरीबोर्ड में:

UINavigationBar की पहचान इंस्पेक्टर में, साथ मुख्यपथ = barPosition एक उपयोगकर्ता निर्धारित क्रम गुण जोड़ें , प्रकार = संख्या, और मान = 3:

Add User Defined Runtime Attribute

+9

आपको यह जानने के लिए बहुत कुछ धन्यवाद कि उपयोगकर्ता ने बारिश के दौरान प्रवेश किया है। यह मेरे लिए धरती साझा कर रहा है। मैं फिर से एक संपत्ति को बदलने के लिए एक ui तत्व subclass नहीं होगा। – lol

+0

दिलचस्प यहां खोजें, लेकिन यह मेरे लिए काम नहीं कर रहा है। मुझे हमेशा निम्न त्रुटि मिलती है: "*** अपरिपक्व अपवाद के कारण ऐप को समाप्त करना 'एनएसआईएननल इन्फॉन्सिस्टेंसी एक्सेप्शन', कारण: 'नियंत्रक द्वारा प्रबंधित यूआईएनविगेशनबार पर प्रतिनिधि को मैन्युअल रूप से सेट नहीं किया जा सकता है।' 'अगर मैं यूआईएनविगेशन व्यू कंट्रोलर को ओवरराइड करता हूं और वहां जोड़ता हूं, तो मैं करता हूं कोई त्रुटि नहीं मिली है, लेकिन यह काम नहीं कर रहा है ... –

+0

@lol मुझे उम्मीद है कि आप व्यंग्यात्मक हैं, ओओ यह ऐसा कुछ नहीं है जिसे आपको आदत में मिलना चाहिए। यह जल्दी से एक डीबगिंग दुःस्वप्न बन सकता है। – TheCodingArt

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