दिलचस्प पोस्ट
कोणीय 2 एप बूटस्ट्रैप करते हुए एक एपीआई कॉल करने के लिए कैसे करें एक सेवा के भीतर प्रसारण प्राप्तकर्ता ऐप पृष्ठभूमि पर जाता है के बाद उपयोगकर्ता स्थान प्राप्त करना हर मिनट आप एसवीएन में एक फ़ाइल कैसे ले जाते हैं? HTTP स्थिति 404 – अनुरोधित संसाधन (/ ProjectName /) उपलब्ध नहीं है TypeError: बाइट्स-जैसी ऑब्जेक्ट की आवश्यकता है, 'स्ट्र' नहीं क्यों getSpeed ​​() हमेशा Android पर 0 वापस PHP MySQLI रोकें SQL इंजेक्शन Django Rest Framework serializer में कस्टम त्रुटि संदेश नेट में सुरक्षित संग्रह डेटाबेस से ड्रॉपडाउन सूची को पॉप्युलेट करने का सही तरीका क्या है? ग्रेडः https: //..pom> पीएर नहीं प्रमाणित किया जा सका बहुप्रतीक्षित पर्यावरण में एचटीटीपी क्लाइंट का उपयोग करने के लिए सर्वश्रेष्ठ अभ्यास JSP में मैं जावा स्क्रिप्टलेट को कैसे जावास्क्रिप्ट मान देता हूं? MySQL में डुप्लिकेट पंक्तियों को निकालें

आईफोन – कैसे यूनाविगेशनबार ऊँचाई निर्धारित की गई?

मैं नेविगेशन के शीर्ष को थोड़ा सा छोटा करना चाहता हूं। आप इसे कैसे प्राप्त करेंगे? यह मैंने किया है जो अब तक की कोशिश की है, लेकिन जैसा कि आप देख सकते हैं, हालांकि मैं नेविगेशनबार को छोटा बना देता हूं, जो भी इलाके में इस्तेमाल किया गया था वह अभी भी है (काला)।

[window addSubview:[navigationController view]]; navigationController.view.frame = CGRectMake(0, 100, 320, 280); navigationController.navigationBar.frame = CGRectMake(0, 0, 320, 20); navigationController.view.backgroundColor = [UIColor blackColor]; [window makeKeyAndVisible]; 

वैकल्पिक शब्द

Solutions Collecting From Web of "आईफोन – कैसे यूनाविगेशनबार ऊँचाई निर्धारित की गई?"

एक कस्टम आकार TATFits के साथ एक UINavigationBar श्रेणी बनाएँ

 @implementation UINavigationBar (customNav) - (CGSize)sizeThatFits:(CGSize)size { CGSize newSize = CGSizeMake(self.frame.size.width,70); return newSize; } @end 

इस नेविगेशन बार उप-कक्षा का उपयोग करके मैंने आईओएस 5.x पर आईओएस 6.x पर सफलतापूर्वक एक बड़ा नेविगेशन बार बनाया है I iPad पर। यह मुझे एक बड़ा नेविगेशन बार देता है लेकिन सभी एनिमेशन को तोड़ता नहीं है

 static CGFloat const CustomNavigationBarHeight = 62; static CGFloat const NavigationBarHeight = 44; static CGFloat const CustomNavigationBarHeightDelta = CustomNavigationBarHeight - NavigationBarHeight; @implementation HINavigationBar - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // UIColor *titleColor = [[HITheme currentTheme] fontColorForLabelForLocation:HIThemeLabelNavigationTitle]; // UIFont *titleFont = [[HITheme currentTheme] fontForLabelForLocation:HIThemeLabelNavigationTitle]; // [self setTitleTextAttributes:@{ UITextAttributeFont : titleFont, UITextAttributeTextColor : titleColor }]; CGAffineTransform translate = CGAffineTransformMakeTranslation(0, -CustomNavigationBarHeightDelta / 2.0); self.transform = translate; [self resetBackgroundImageFrame]; } return self; } - (void)resetBackgroundImageFrame { for (UIView *view in self.subviews) { if ([NSStringFromClass([view class]) rangeOfString:@"BarBackground"].length != 0) { view.frame = CGRectMake(0, CustomNavigationBarHeightDelta / 2.0, self.bounds.size.width, self.bounds.size.height); } } } - (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics { [super setBackgroundImage:backgroundImage forBarMetrics:barMetrics]; [self resetBackgroundImageFrame]; } - (CGSize)sizeThatFits:(CGSize)size { size.width = self.frame.size.width; size.height = CustomNavigationBarHeight; return size; } - (void)setFrame:(CGRect)frame { [super setFrame:frame]; [self resetBackgroundImageFrame]; } @end 

तेजी के लिए

Uinavigation बार के उप-वर्ग बनाएं

 import UIKit class higherNavBar: UINavigationBar { override func sizeThatFits(size: CGSize) -> CGSize { var newSize:CGSize = CGSizeMake(self.frame.size.width, 87) return newSize } 

दोनों पक्षों पर दो खाली स्ट्रिप्स होंगे, मैंने इसे काम करने के लिए चौड़ाई को सही संख्या में बदल दिया।

हालांकि शीर्षक और बैक बटन तल पर गठबंधन कर रहे हैं।

UINavigationBar subclass के लिए आवश्यक नहीं है उद्देश्य-सी में आप एक श्रेणी का उपयोग कर सकते हैं और स्विफ्ट में आप एक एक्सटेंशन का उपयोग कर सकते हैं।

 extension UINavigationBar { public override func sizeThatFits(size: CGSize) -> CGSize { return CGSize(width: frame.width, height: 70) } } 

आईपैड (और आईफोन) पर बेहतर प्रदर्शन करने के लिए मुझे निम्नलिखित कोड मिला है:

 - (CGSize)sizeThatFits:(CGSize)size { return CGSizeMake(self.superview.bounds.size.width, 62.0f); } 

यदि आप अपने एनएवी बार के लिए कस्टम ऊँचाई का उपयोग करना चाहते हैं, तो मुझे लगता है कि आपको शायद कम से कम, एक कस्टम एनएवी बार (आपके एनएवी नियंत्रक में एक नहीं) का उपयोग करना चाहिए। NavController के बार छिपाएं और अपना स्वयं का जोड़ें। तब आप अपनी ऊंचाई तय कर सकते हैं जो आप चाहते हैं।

मैं स्विफ्ट में निम्नलिखित उपवर्ग कोड का उपयोग करने में सक्षम था यह मौजूदा ऊंचाई को एक प्रारंभिक बिंदु के रूप में प्रयोग करता है और इसमें जोड़ता है।

इस पृष्ठ पर अन्य समाधानों के विपरीत, ऐसा लगता है कि जब भी परिदृश्य और पोर्ट्रेट ओरिएंटेशन के बीच स्विच करते समय अभी भी सही तरीके से बदल जाता है।

 class TallBar: UINavigationBar { override func sizeThatFits(size: CGSize) -> CGSize { var size = super.sizeThatFits(size) size.height += 20 return size } } 

स्विफ्ट में यह एक बहुत अच्छा उप-वर्ग है जिसे आप स्टोरीबोर्ड में कॉन्फ़िगर कर सकते हैं। यह मैक्रास द्वारा किया गया काम पर आधारित है, जो महान है, लेकिन यह पहले से आईओएस 7 था और आपका नवा बार स्टेटस बार के तहत विस्तार नहीं करेगा।

 class UINaviationBarCustomHeight: UINavigationBar { // Note: this must be set before the navigation controller is drawn (before sizeThatFits is called), // so set in IB or viewDidLoad of the navigation controller @IBInspectable var barHeight: CGFloat = -1 @IBInspectable var barHeightPad: CGFloat = -1 override func sizeThatFits(size: CGSize) -> CGSize { var customSize = super.sizeThatFits(size) let stockHeight = customSize.height if (UIDevice().userInterfaceIdiom == .Pad && barHeightPad > 0) { customSize.height = barHeightPad } else if (barHeight > 0) { customSize.height = barHeight } // re-center everything transform = CGAffineTransformMakeTranslation(0, (stockHeight - customSize.height) / 2) resetBackgroundImageFrame() return customSize } override func setBackgroundImage(backgroundImage: UIImage?, forBarPosition barPosition: UIBarPosition, barMetrics: UIBarMetrics) { super.setBackgroundImage(backgroundImage, forBarPosition: barPosition, barMetrics: barMetrics) resetBackgroundImageFrame() } private func resetBackgroundImageFrame() { if let bg = valueForKey("backgroundView") as? UIView { var frame = bg.frame frame.origin.y = -transform.ty if (barPosition == .TopAttached) { frame.origin.y -= UIApplication.sharedApplication().statusBarFrame.height } bg.frame = frame } } } 

मैं अभी तक आईओएस में एक नौसिखिया हूँ मैंने निम्नलिखित तरीके से समस्या हल की:

  1. मैंने एक नया वर्ग बनाया है जो UINavigationBar से प्राप्त होता है

  2. मैं निम्नलिखित विधि को ओवरराइड करता हूं:

      (void)setBounds:(CGRect)bounds { [super setBounds:bounds]; self.frame = CGRectMake(0, 0, 320, 54); } 

3. नेविगेशन पट्टी की कस्टम पृष्ठभूमि प्राप्त करने के लिए, मैंने निम्नलिखित विधि को ओवरराइड किया है:

 -(void)drawRect:(CGRect)rect { [super drawRect:rect]; UIImage *img = [UIImage imageNamed:@"header.png"]; [img drawInRect:CGRectMake(0,0, self.frame.size.width, self.frame.size.height)]; } 
  1. Xib फ़ाइल में, मैंने अपनी कक्षा में नेविगेशन बार के डिफ़ॉल्ट UINavigationBar वर्ग को बदल दिया है।