2011-08-21 14 views
13

डिफ़ॉल्ट रूप से यूआईटीएबीबार में, चयनित UITabBarItem पर एक चमकदार हाइलाइट है।आईओएस में चयनित UITabBarItem पर चमकदार हाइलाइट को कैसे हटाएं?

क्या चमकदार हाइलाइट मास्क को हटाना संभव है?

धन्यवाद।

उत्तर

6
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage {anImage}]] 

इस हर tabbar आप का उपयोग (यहां तक ​​कि subclassed वाले)

पर प्रभाव पड़ता है तुम यहाँ एक छवि अपने tabbar के रंग जैसा ही है कि का उपयोग करते हैं, तो आप अभ्यस्त एक सूचक दिखाई।

शायद आप एक पूर्ण पारदर्शी छवि या 1px * 1px की एक छवि का भी उपयोग कर सकते हैं।

+2

उपयोग http://ioscodesnippet.tumblr.com/post/9247898208/creating स्पष्ट छवि बनाने के लिए -ए-प्लेसहोल्डर-uiimage-गतिशील रूप से रंग। बहुत अच्छा काम करता है। – nh32rg

5

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

परिणाम: मैंने टैब बार को कोई चमकदार प्रभाव के साथ अनुकूलित किया है। दिलचस्प यह है कि UITabBarButtons पृष्ठभूमि छवि के अंतर्गत हैं, लेकिन अभी भी चयन योग्य है।

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    [self customizeTabBar]; 
} 

- (void)customizeTabBar { 

    NSString *imageName = [NSString stringWithFormat:@"tabbg%i.png", tabBarCtrl.selectedIndex + 1]; 

    for(UIView *view in tabBarCtrl.tabBar.subviews) { 
     if([view isKindOfClass:[UIImageView class]]) { 
      [view removeFromSuperview]; 
     } 
    } 
    UIImageView *background = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]] autorelease]; 
    [tabBarCtrl.tabBar insertSubview:background atIndex:0]; 
    [tabBarCtrl.tabBar bringSubviewToFront:background]; 
     //if needed, here must be adding UILabels with titles, I didn't need it. 

} 

हो सकता है कि आप इस के बारे में दिलचस्पी होगी :)

+0

मुझे यह कोड कहां जोड़ना चाहिए? उस UIViewController में – chatur

+2

, जो आपके टैब बार नियंत्रक के प्रतिनिधि को कार्यान्वित कर रहा है। आपको प्रत्येक टैब बार आइटम के लिए पूरे टैब बार पैनल के लिए छवि की आवश्यकता है, चयनित स्थिति में वर्तमान आइटम चित्र का प्रतिनिधित्व करता है, और अन्य डिफ़ॉल्ट स्थिति में। चयनित टैब इंडेक्स के अनुसार, पृष्ठभूमि को प्रतिस्थापित किया गया है - (शून्य) कस्टमाइज़बैबर – Mitya

+0

धन्यवाद बहुत मित्त .. !! – chatur

60
[[UITabBar appearance] setSelectionIndicatorImage:[[UIImage alloc] init]]; 

एक आकर्षण की तरह काम करता है:

कोड ऐसा ही कुछ है!

+3

किसी को इसे सही के रूप में चिह्नित करना चाहिए .. <3 –

+0

उत्कृष्ट उत्तर, लेकिन ध्यान रखें कि इससे सभी यूआईटीएबीबार प्रभावित होंगे, यहां तक ​​कि उप-वर्ग भी हैं। –

1

Apple's प्रलेखन के अनुसार आप लागू कर सकते हैं:

(void)setFinishedSelectedImage: 
     (UIImage *)selectedImage withFinishedUnselectedImage: 
     (UIImage *)unselectedImage 

एक UITabBar विधि है कौन सा

Here´s the link.

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