में बटन से चमक प्रभाव को हटा रहा है मैं नेविगेशन बार पर बटन से चमक/चमक प्रभाव को कैसे हटा सकता हूं? यदि मैं कस्टम छवि का उपयोग कर नेविगेशन बार को कस्टमाइज़ करता हूं तो बटन प्रभावित नहीं होते हैं, क्या मैं उनसे (लाइन और चमक) से प्रभाव हटा सकता हूं, या पूरे बटन के लिए हेक्स रंग कोड परिभाषित कर सकता हूं, या यहां तक कि उनके लिए एक कस्टम छवि भी परिभाषित कर सकता हूं भी?UINavigationBar
उत्तर
मैं बस इसे समझने की प्रक्रिया के माध्यम से चला गया। असल में, आपको कस्टम खिंचाव वाली छवियां बनाने और चमक से छुटकारा पाने के लिए बटन की पृष्ठभूमि के रूप में उपयोग करने की आवश्यकता है। UINavigationController में बैक बटन को प्रतिस्थापित करना थोड़ा कठिन है। इसके लिए मैंने अपने कस्टम बटन के साथ डिफ़ॉल्ट बैक बटन को प्रतिस्थापित करने के लिए एक UINavigationControllerDelegate का उपयोग किया।
UIBarButtonItem पर एक वर्ग है कि अपने कस्टम बटन बनाता बनाएँ:
यहाँ कुछ कोड है। ये मेरा।
@interface UIBarButtonItem (UIBarButtonItem_customBackground) + (id) customBarButtonWithTitle:(NSString *)title target:(id)target selector:(SEL)selector; + (id) customBackButtonWithTitle:(NSString *)title target:(id)target selector:(SEL)selector; @end @implementation UIBarButtonItem (UIBarButtonItem_customBackground) + (id) customButtonWithImageNamed:(NSString *)imageName selectedImageNamed:(NSString *)selectedImageName leftCapWidth:(CGFloat)leftCapWidth edgeInsets:(UIEdgeInsets)edgeInsets title:(NSString *)title target:(id)target selector:(SEL)selector { UIButton* customButton = [UIButton buttonWithType:UIButtonTypeCustom]; [customButton addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside]; customButton.titleLabel.font = [UIFont boldSystemFontOfSize:12.0f]; customButton.titleLabel.shadowColor = [UIColor colorWithRed:0.0f/255.0f green:0.0f/255.0f blue:0.0f/255.0f alpha:0.25f]; customButton.titleLabel.shadowOffset = CGSizeMake(0.0f, -1.0f); customButton.titleLabel.lineBreakMode = UILineBreakModeTailTruncation; customButton.titleEdgeInsets = edgeInsets; UIImage* navButtonBackgroundImage = [[UIImage imageNamed:imageName] stretchableImageWithLeftCapWidth:leftCapWidth topCapHeight:0.0f]; UIImage* navButtonPressedBackgroundImage = [[UIImage imageNamed:selectedImageName] stretchableImageWithLeftCapWidth:leftCapWidth topCapHeight:0.0f]; [customButton setBackgroundImage:navButtonBackgroundImage forState:UIControlStateNormal]; [customButton setTitle:title forState:UIControlStateNormal]; [customButton setBackgroundImage:navButtonPressedBackgroundImage forState:UIControlStateHighlighted]; [customButton setBackgroundImage:navButtonPressedBackgroundImage forState:UIControlStateSelected]; CGSize size = CGSizeMake(30.0f, 30.0f); if (title != nil) { size = [[NSString stringWithString:title] sizeWithFont:customButton.titleLabel.font]; } customButton.frame = CGRectMake(0.0f, 0.0f, size.width + 20.0f, 30.0f); customButton.layer.shouldRasterize = YES; customButton.layer.rasterizationScale = [[UIScreen mainScreen] scale]; return [[[UIBarButtonItem alloc] initWithCustomView:customButton] autorelease]; } + (id) customBarButtonWithTitle:(NSString *)title target:(id)target selector:(SEL)selector { return [self customButtonWithImageNamed:@"navButtonBG.png" selectedImageNamed:@"navButtonPressedBG.png" leftCapWidth:6.0f edgeInsets:UIEdgeInsetsMake(0.0f, 5.0f, 0.0f, 5.0f) title:title target:target selector:selector]; } + (id) customBackButtonWithTitle:(NSString *)title target:(id)target selector:(SEL)selector { return [self customButtonWithImageNamed:@"backButtonBG.png" selectedImageNamed:@"backButtonPressedBG.png" leftCapWidth:12.0f edgeInsets:UIEdgeInsetsMake(0.0f, 11.0f, 0.0f, 5.0f) title:title target:target selector:selector]; } @end
अपने UINavigationBar
UIBarButtonItem* logoutButton = [UIBarButtonItem customBarButtonWithTitle:@"Logout" target:self selector:@selector(logout)]; self.navigationItem.rightBarButtonItem = logoutButton;
के लिए बटन जोड़ें आप भी UINavigationController के वापस बटन को बदलने के लिए चाहते हैं, एक UINavigationControllerDelegate सेटअप: मैं दोनों नियमित बार बटनों और वापस बटन अनुकूलित करने के लिए इस श्रेणी का उपयोग और इतने तरह willShowViewController तरीका लागू:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { if([navigationController.viewControllers count ] > 1) { UIViewController* backViewController = [navigationController.viewControllers objectAtIndex:(navigationController.viewControllers.count - 2)]; NSString* backText = backViewController.title; UIBarButtonItem* newBackButton = [UIBarButtonItem customBackButtonWithTitle:backText target:navigationController selector:@selector(popViewControllerAnimated:)]; viewController.navigationItem.leftBarButtonItem = newBackButton; viewController.navigationItem.hidesBackButton = YES; } }
यहाँ stretc हैं Hable छवियों मैं उपयोग कर रहा हूँ:
- वापस बटन: दबाया:
- नियमित बटन: दबाया:
आप। जा सकता है। इसलिए। FEAKING। बहुत बढ़िया!!!!! मुझे तुमसे मोहब्बत है! – Eugene
@ जस्टिन गैलाघर जस्टिन धन्यवाद धन्यवाद, धन्यवाद! –
मैं इस कोड को प्रोजेक्ट में उपयोग करने के लिए कैसे जोड़ूं? –
आपको छवियों पर किसी भी चमक प्रभाव के बिना कस्टम बटन का उपयोग करना होगा जिसके द्वारा आप नेविबार से बटन के ग्लूस प्रभाव से छुटकारा पा सकते हैं।
वापस बटन इसे लागू करने के लिए आवश्यक नहीं है बदल रहा है के लिए प्रतिनिधि विधि uinavigationcontroller।
वांछित बैकबटन को सेट करने के बाद आपको केवल HidesBckButton प्रॉपर्टी को सेट करने की आवश्यकता है क्योंकि @ जस्टिन गैलाकर ने पूरी तरह से समझाया है।
self.navigationItem.leftBarButtonItem = [UIBarButtonItem customBackButtonWithTitle:@"Back" target:self.navigationController selector:@selector(popViewControllerAnimated:)];
self.navigationItem.hidesBackButton = YES;
यह भी जरूरी नहीं है, बाएंबर्टबटन इटिम संपत्ति को सेट करना बैक बटन ओवरराइड करेगा – Daniel
- 1. UINavigationBar
- 2. UINavigationBar
- 3. UINavigationBar
- 4. UINavigationBar
- 5. UINavigationBar
- 6. UINavigationBar
- 7. UINavigationBar (iPhone)
- 8. UINavigationBar परिदृश्य
- 9. पारदर्शी UINavigationBar
- 10. UINavigationBar TitleView
- 11. UINavigationBar डिफ़ॉल्ट रंग
- 12. UINavigationBar कस्टम शीर्षक स्थिति
- 13. UINavigationBar उपस्थिति ओवरराइड 5
- 14. UINavigationBar फ़ॉन्ट गुण बदलें?
- 15. UINavigationBar शीर्षक लेबल टेक्स्ट
- 16. अनुकूलित UINavigationBar फ़ॉन्ट
- 17. UINavigationBar पर ग्रेडियेंट निकालें
- 18. UINavigationBar शीर्षक viewControllers
- 19. UINavigationBar संपादन योग्य शीर्षक?
- 20. UIButton UINavigationbar बटन
- 21. एक UIBarButtonItem UINavigationBar
- 22. UISegmentedControl एक UINavigationBar/आइटम
- 23. UINavigationBar दो कोनों को बढ़ाया
- 24. ऑटो छिपाने UINavigationBar और UIToolbar
- 25. कस्टम UIPickerView को UINavigationBar में कैसे जोड़ें?
- 26. UINavigationBar बैक बटन के शीर्षक को "बैक"
- 27. रोटेशन पर UINavigationBar का आकार बदलना
- 28. UINavigationBar में वापस बटन समस्या छिपाएं
- 29. मैं UINavigationBar की पृष्ठभूमि कैसे बदलूं?
- 30. UIViewController में UINavigationBar को कैसे जोड़ा जाए?
@Rudy - आप सवाल लगता है कि दूसरे का डुप्लिकेट हो सकता है, बल्कि सवाल के शरीर को संपादित करने के इस तरह के रूप में यह बंद करने के लिए वोट करें। –
यह एक संभावित डुप्लिकेट है [आईओएस: एक बार के साथ खोज बार पृष्ठभूमि चमक/चमक को कैसे बदलें] (http://stackoverflow.com/questions/6696200/ios-how-to-replace-search-bar-background- चमक-चमक-एक-रंग) –