दिलचस्प पोस्ट
"हर बोली से पहले स्लैश" समस्या चेकआउट्स का उपयोग किए बिना गीट की शाखाओं को मिलाएं, अपडेट करें और खींचें Excel कस्टम फ़ंक्शन टूलटिप के लिए खोज मैं उद्देश्य-सी में प्रतिनिधि कैसे बना सकता हूँ? कैसे एक asp.net वेब एपीआई को सुरक्षित करने के लिए MongoDB रिकॉर्ड खोजें जहां सरणी फ़ील्ड रिक्त नहीं है पार्स त्रुटि: सिंटैक्स त्रुटि, अप्रत्याशित ' ' क्यों int * int ** में क्षय नहीं है लेकिन int ? सी प्रोग्राम संकलन में आर्किटेक्चर x86_64 के लिए अनिर्धारित प्रतीक Tensorflow: एडम अनुकूलक का उपयोग करना क्वेरी के बिना PHP और श्रेणियों और उप श्रेणियों के लिए वृक्ष संरचना जावास्क्रिप्ट window.location में लक्ष्य = "_ रिक्त" कैसे जोड़ें? एक-लाइन सूची की समझ: अगर-दूसरे संस्करण एक ही समाधान / परियोजना में दृश्य स्टूडियो के साथ दोनों 32bit और 64bit लक्ष्यीकरण PHP पुनरावर्ती निर्देशिका पथ

यूआईटीबार आईओएस 7 में चयनित आइटम छवियां नहीं दिखा रहा है

आईओएस 6 में ठीक दिखता है, लेकिन आईओएस 7 में नहीं। मैं दृश्य में नियंत्रक दृश्यडिडलोड विधि में चुने हुए राज्य की स्थापना कर रहा हूं। जब उपयोगकर्ता एक टैब बार आइटम का चयन करता है तो छवि गायब हो जाती है। यहां मेरा कोड है:

UITabBar *tabBar = self.tabBarController.tabBar; if ([UITabBar instancesRespondToSelector:@selector(setSelectedImageTintColor:)]) { [self.tabBarController.tabBar setSelectedImageTintColor:[UIColor whiteColor]]; } UITabBarItem *item0 = [tabBar.items objectAtIndex:0]; UITabBarItem *item1 = [tabBar.items objectAtIndex:1]; UITabBarItem *item2 = [tabBar.items objectAtIndex:2]; UITabBarItem *item3 = [tabBar.items objectAtIndex:3]; [item0 setTitle:@"Home"]; [item1 setTitle:@"Calendar"]; [item2 setTitle:@"News"]; [item3 setTitle:@"My Events"]; [item0 setFinishedSelectedImage:[UIImage imageNamed:@"homeIconSelected.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"home2.png"]]; [item1 setFinishedSelectedImage:[UIImage imageNamed:@"Calendar"] withFinishedUnselectedImage:[UIImage imageNamed:@"CalendarIconSelected"]]; [item2 setFinishedSelectedImage:[UIImage imageNamed:@"NewsIconSelected"] withFinishedUnselectedImage:[UIImage imageNamed:@"News"]]; [item3 setFinishedSelectedImage:[UIImage imageNamed:@"EventsIconSelected"] withFinishedUnselectedImage:[UIImage imageNamed:@"Events"]]; [item1 imageInsets]; [item2 imageInsets]; [item3 imageInsets]; 

Solutions Collecting From Web of "यूआईटीबार आईओएस 7 में चयनित आइटम छवियां नहीं दिखा रहा है"

आपको टैबबारीटइट इनिट के साथ टाइटल का प्रयोग करना होगा initWithTitle:image:selectedImage

 [[UITabBarItem alloc] initWithTitle:@"title" image:image selectedImage:imageSel]; 

UIImage रेंडरिंग मोड को बदलने के साथ संयोजन के रूप में:

 imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal 

या (मूल दृश्य टेम्प्लेट टिंट मुखौटा लागू करने के लिए, यह विकल्प टैब बार मदों के लिए डिफ़ॉल्ट है, जब तक आप उपरोक्त रेंडरिंग मोड से ऑप्ट आउट नहीं करते हैं)

 imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate 

यहां एक टैब बार आइटम के लिए एक कोड नमूना है: –

 UIImage *musicImage = [UIImage imageNamed:@"music.png"]; UIImage *musicImageSel = [UIImage imageNamed:@"musicSel.png"]; musicImage = [musicImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; musicImageSel = [musicImageSel imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; self.musicViewController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Music" image:musicImage selectedImage:musicImageSel]; 

उम्मीद है की यह मदद करेगा

कोड की इन पंक्तियों को इसमें जोड़ें

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; UITabBar *tabBar = tabBarController.tabBar; UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0]; UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1]; UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2]; UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3]; tabBarItem1.selectedImage = [[UIImage imageNamed:@"selectimg"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem1.image = [[UIImage imageNamed:@"deselectimg"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem1.title = @"xxxx"; tabBarItem2.selectedImage = [[UIImage imageNamed:@"selectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem2.image = [[UIImage imageNamed:@"deselectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem2.title = @"xxxx"; tabBarItem3.selectedImage = [[UIImage imageNamed:@"selectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem3.image = [[UIImage imageNamed:@"deselectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem3.title = @"xxxx"; tabBarItem4.selectedImage = [[UIImage imageNamed:@"selectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem4.image = [[UIImage imageNamed:@"deselectimg"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem4.title = @"xxxx"; return YES; } 

यह मेरे लिए काम करता है … और सबसे अच्छे के लिए आशा …

इस समस्या को हल कर सकते हैं मूल के लिए बार आइटम छवि का रेंडर मोड सेट करें यह .xcassets में छवियों का उपयोग करके किया जा सकता है, इसलिए आपको बहुत सी कोड लिखना नहीं है।

प्रथम चरण, डैप और अपनी बार आइटम छवियों को Assets.xcassets पर छोड़ दें।

दूसरा चरण, बार आइटम की छवि का चयन करें, और [मूल रूप] को [प्रस्तुत करना] को बदलें

यहां छवि विवरण दर्ज करें

ps: मैं आमतौर पर बहुत से कोड लिखने से बचने के लिए कहानी बोर्ड द्वारा टैबबेर कंट्रोलर की टैब बार आइटम सेट करता हूं

यहां छवि विवरण दर्ज करें

कोई जवाब इस समस्या को ठीक करने में मदद करता है इसका मुख्य कारण यह है कि मेरा TabBarController मेरे TabBarController नहीं था।

स्टोरीबोर्ड के लिए इस्तेमाल किया गया हल, और मैंने अपने UITabButton क्लिक किया और मैंने selectedImage UITabButton लिए एक रनटाइम विशेषता जोड़ा:

UITabController जुड़े प्रत्येक अलग विचार के लिए

आईओएस 6 और 7 दोनों के लिए काम करने के लिए मेरे कस्टम टैबबार को बनाने में कुछ घंटे व्यतीत करने के बाद, यही मेरे लिए काम किया …

 UITabBarController *tabBarController = (UITabBarController *)[[self window] rootViewController]; UITabBar *tabBar = tabBarController.tabBar; UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0]; UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1]; UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2]; UITabBarItem *tabBarItem4 = [tabBar.items objectAtIndex:3]; tabBarItem1.title = @"Home"; tabBarItem2.title = @"Map"; tabBarItem3.title = @"Weather"; tabBarItem4.title = @"Info"; if ([[[UIDevice currentDevice] systemVersion] floatValue] < 7) { [tabBarItem1 setFinishedSelectedImage:[UIImage imageNamed:@"cyexplore_home_white.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"cyexplore_home_black.png"]]; [tabBarItem2 setFinishedSelectedImage:[UIImage imageNamed:@"cyexplore_cloud_white.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"cyexplore_cloud_black.png"]]; [tabBarItem3 setFinishedSelectedImage:[UIImage imageNamed:@"cyexplore_map_white.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"cyexplore_map_black.png"]]; [tabBarItem4 setFinishedSelectedImage:[UIImage imageNamed:@"cyexplore_info_white.png"] withFinishedUnselectedImage:[UIImage imageNamed:@"cyexplore_info_black.png"]]; } else { tabBarItem1.selectedImage = [[UIImage imageNamed:@"cyexplore_home_white"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem1.image = [[UIImage imageNamed:@"cyexplore_home_black"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem2.selectedImage = [[UIImage imageNamed:@"cyexplore_cloud_white"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem2.image = [[UIImage imageNamed:@"cyexplore_cloud_black"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem3.selectedImage = [[UIImage imageNamed:@"cyexplore_map_white"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem3.image = [[UIImage imageNamed:@"cyexplore_map_black"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem4.selectedImage = [[UIImage imageNamed:@"cyexplore_info_white"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; tabBarItem4.image = [[UIImage imageNamed:@"cyexplore_info_black"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; } UIImage* tabBarBackground = [UIImage imageNamed:@"tabbar.png"]; [[UITabBar appearance] setBackgroundImage:tabBarBackground]; [[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"tabbar_selected.png"]]; [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor blackColor], UITextAttributeTextColor, nil] forState:UIControlStateNormal]; [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], UITextAttributeTextColor, nil] forState:UIControlStateSelected]; 

अगर आप स्टोरीबोर्ड के साथ काम कर रहे हैं तो आपको पहचानकर्ता डालना होगा: नेविगेशन नियंत्रक में "कस्टम"

फिर :

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Assign tab bar item with titles UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; UITabBar *tabBar = tabBarController.tabBar; UITabBarItem *tabBarItem1 = [tabBar.items objectAtIndex:0]; UITabBarItem *tabBarItem2 = [tabBar.items objectAtIndex:1]; UITabBarItem *tabBarItem3 = [tabBar.items objectAtIndex:2]; (void)[tabBarItem1 initWithTitle:nil image:[UIImage imageNamed:@"home.png"] selectedImage:[UIImage imageNamed:@"home_selected.png"]]; (void)[tabBarItem2 initWithTitle:nil image:[UIImage imageNamed:@"home.png"] selectedImage:[UIImage imageNamed:@"home_selected.png"]]; (void)[tabBarItem3 initWithTitle:nil image:[UIImage imageNamed:@"home.png"] selectedImage:[UIImage imageNamed:@"home_selected.png"]]; // Change the tab bar background UIImage* tabBarBackground = [UIImage imageNamed:@"tabbar.png"]; [[UITabBar appearance] setBackgroundImage:tabBarBackground]; return YES; } 

यह मेरे लिए काम करता है

मेरे लिए कोई भी उत्तर काम नहीं हुआ – मैं TintColor का उपयोग कर रहा हूं, लेकिन अगर आप TintColor की TintColor संपत्ति को सेट करते हैं जो उस रंग के साथ चयनित छवि को उजागर करेगा। setTintColor c में यह सेट किया जा सकता है setTintColor फ़ंक्शन।

मुझे एक्सकोड 6.0.1 (6 ए 317) के साथ एक ही समस्या थी, इंटरफ़ेस बिल्डर के साथ एक बग लगता है हालांकि, मैंने इसे ठीक से इंटरफ़ेस बिल्डर में छोड़ी गई selected image को छोड़कर इसे हल करने में कामयाब किया है, मेरे दृश्य नियंत्रकों में प्रत्येक दृश्य में viewDidLoad मुझे डाला था:

[self.navigationController.tabBarItem setSelectedImage:[UIImage imageNamed:@"imagename-selected"]];

यह अब अच्छी तरह से काम करता है, मेरे selectedImage इमेज दिखा रहा है और वैश्विक टिंट मुखौटा के साथ।

132206 से उत्तर के आधार पर, मैंने इस विधि को AppDelegate के लिए बनाया है, जिसे application:didFinishLaunchingWithOptions: से बुलाया गया application:didFinishLaunchingWithOptions: साथ:

[self configureSelectedImages];

यह स्पष्ट रूप से आपके टैब चित्रों के लिए सख्त नामकरण सम्मेलन की आवश्यकता है, लेकिन बिना संपादन के भी फिर से उपयोग किया जा सकता है स्पष्ट नाम देने के लिए – अपने चयनित टैब बार इमेजेस को नाम दें TabbarXXXSelected, जहां XXX टैब बार आइटम के शीर्षक के बराबर है।

 - (void)configureSelectedImages { UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; UITabBar *tabBar = tabBarController.tabBar; for (UITabBarItem *tabBarItem in [tabBar items]) { NSString *selectedImage = [NSString stringWithFormat:@"Tabbar%@Selected", [tabBarItem title]]; (void)[tabBarItem initWithTitle:[tabBarItem title] image:[tabBarItem image] selectedImage:[UIImage imageNamed:selectedImage]]; } } 

आपको फ़ंक्शन पर लिखना चाहिए:

 UIImage* tab_image = [UIImage imageNamed:@"tab_image.png"]; UIImage* tab_image_selected = [UIImage imageNamed:@"tab_image_selected.png"]; tab_image = [tab_image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; tab_image_selected = [tab_image_selected imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; self.tabBarItem.image = tab_image; self.tabBarItem.selectedImage = tab_image_selected; 

आशा है कि ये आपकी मदद करेगा

आपके पहले दृश्य नियंत्रक की .h फाइल में, मैंने निम्नलिखित को जोड़ा: @ प्रॉपर्टी (कमजोर, नॉटैटमॉमिक) आईबीओटलेट यूआईटीबबारीआईटीम * नक्शाविएटबैरआइटम; @ प्रॉपर्टी (कमजोर, नॉनैटोमिक) आईबीओटललेट यूआईटीबबारीआईटीम * प्रोफाइलव्यूटीबबारीइटम; @ प्रॉपर्टी (कमजोर, नॉनैटोमिक) आईबीओटललेट यूआईटीबबारीआईटीम * अधिसूचना वीटैबबारीइटम;

(ध्यान दें कि mapViewTabBarItem को ctrl द्वारा वास्तविक टैब बार आइटम को .h फ़ाइल के शीर्ष पर संपत्ति घोषणाओं की सूची में खींचकर लिंक किया गया था)

इसके बाद, viewDidLoad में एक ही दृश्य नियंत्रक की .m फ़ाइल में, निम्न जोड़ें:

 self.tabBarItem = [self.tabBarController.tabBar.items objectAtIndex:0]; _mapViewTabBarItem.selectedImage = [[UIImage imageNamed:@"@2x-map-icon-selected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; self.tabBarItem.image = [[UIImage imageNamed:@"@2x-map-icon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; _profileViewTabBarItem = [self.tabBarController.tabBar.items objectAtIndex:1]; _profileViewTabBarItem.selectedImage = [[UIImage imageNamed:@"@2x-profile-icon-selected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; _profileViewTabBarItem.image = [[UIImage imageNamed:@"@2x-profile-icon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; _notificationViewTabBarItem = [self.tabBarController.tabBar.items objectAtIndex:2]; _notificationViewTabBarItem.selectedImage = [[UIImage imageNamed:@"@2x-notifications-icon-selected.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; _notificationViewTabBarItem.image = [[UIImage imageNamed:@"@2x-notifications-icon.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal ]; 

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मैंने स्टोरीबोर्ड में टैब बार बनाया और इंटरफ़ेस बिल्डर मेनू के माध्यम से सभी छवियों को जोड़ा, कोड में कोई नहीं।

मेरा फिक्स वास्तव में सरल था: आईबी में विशेषता निरीक्षक खिड़की के अंतर्गत, "चयनित छवि" के लिए टैब बार मद फ़ील्ड रिक्त होनी चाहिए, और "छवि" के लिए बार आइटम फ़ील्ड को वह छवि भरनी चाहिए जिसे आप चाहते हैं

मैं Xcode 6.0.1 चला रहा हूं और आईओएस 8.0.2 उपकरणों के साथ परीक्षण कर रहा हूं।

इसे इस्तेमाल करे:

 UITabBarItem *item1 = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"Icon-Small-50.png"] tag:100]; UITabBarItem *item2 = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"image-50.png"] tag:200]; UITabBarItem *item3 = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"Icon-clip-50.png"] tag:300]; UITabBarItem *item4 = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"Icon-color-50.png"] tag:400]; UITabBarItem *item5 = [[UITabBarItem alloc] initWithTitle:@"" image:[UIImage imageNamed:@"Icon-lock-50.png"] tag:500]; [item1 setSelectedImage:[[UIImage imageNamed:@"Icon-Small-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; [item1 setImageInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; [item2 setSelectedImage:[[UIImage imageNamed:@"image-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; [item2 setImageInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; [item3 setSelectedImage:[[UIImage imageNamed:@"Icon-clip-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; [item3 setImageInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; [item4 setSelectedImage:[[UIImage imageNamed:@"Icon-color-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; [item4 setImageInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; [item5 setSelectedImage:[[UIImage imageNamed:@"Icon-lock-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; [item5 setImageInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; item1.image = [[UIImage imageNamed:@"Icon-Small-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; item2.image = [[UIImage imageNamed:@"image-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; item3.image = [[UIImage imageNamed:@"Icon-clip-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; item4.image = [[UIImage imageNamed:@"Icon-color-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; item5.image = [[UIImage imageNamed:@"Icon-lock-50.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 

मेरी भी यही समस्या थी। लेकिन स्टोरीबोइड्स के साथ काम करने से मुझे कोड में कुछ भी बदलने से रोका गया स्टोरीबोर्ड में खाली छवि को छोड़कर मेरे लिए इस बाधा को हटा दिया। हालांकि टैब के व्यू नियंत्रक के viewWillAppear विधि में initWithTitle डालकर मुझे अजीब व्यवहार दिया। पहले चयनित छवि को एक अतिरिक्त क्लिक की आवश्यकता थी और छवियां गैर-प्रारंभिक टैब के लिए दिखाई नहीं थीं।

मेरे लिए इसे फिक्स करने के लिए निम्नलिखित कोड को डिडफिन्शलोडिंगविथ विकल्प (132206 और अमिताभ के समान) में ऐपडेलिएट में जोड़ रहा था:

 NSArray * vcs = [(UITabBarController*)self.window.rootViewController viewControllers]; UIViewController *tab0 = [[(UINavigationController*)[vcs objectAtIndex:0] viewControllers] objectAtIndex:0]; tab0.title = NSLocalizedString(@"Time", nil); tab0.tabBarItem = [[UITabBarItem alloc] initWithTitle:tab0.title image:[UIImage imageNamed:@"Recents.png"] selectedImage:[UIImage imageNamed:@"RecentsSolid.png"]]; UIViewController *tab1 = [[(UINavigationController*)[vcs objectAtIndex:1] viewControllers] objectAtIndex:0]; tab1.title = NSLocalizedString(@"Expense", nil); tab1.tabBarItem = [[UITabBarItem alloc] initWithTitle:tab1.title image:[UIImage imageNamed:@"Euro.png"] selectedImage:[UIImage imageNamed:@"EuroSolid.png"]]; 

IOS7 में छवि समस्या को ठीक करने के लिए नीचे दिए गए कोड का उपयोग करें:

 [[UITabBarItem alloc] initWithTitle:@"title" image:[[UIImage imageNamed:@"YOUR_IMAGE.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] selectedImage:[[UIImage imageNamed:@"YOUR_SEL_IMAGE.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 

यह यूआईटीबबर मदों के लिए श्रेणी का आसान और साफ समाधान है।

बस श्रेणी बनाएं और रनटाइम एट्रिब्यूट का उपयोग करें और इसे नीचे की श्रेणी से देखें। चयनित टैबबेरटम के लिए क्रम सुविधा जोड़ेंइसे श्रेणी से देखें और परिवर्तन करें

 #import "UITabBarItem+CustomTabBar.h" @implementation UITabBarItem (CustomTabBar) -(void)setValue:(id)value forKey:(NSString *)key { if([key isEqualToString:@"tabtitle"]){ if([value isEqualToString:@"contacts"]) { [self setSelectedImage:[[UIImage imageNamed:@"contacts-selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; } else if([value isEqualToString:@"chat"]) { [self setSelectedImage:[[UIImage imageNamed:@"chat-selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; } else if([value isEqualToString:@"groupchat"]) { [self setSelectedImage:[[UIImage imageNamed:@"groupchat-selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; } else if([value isEqualToString:@"settings"]) { [self setSelectedImage:[[UIImage imageNamed:@"settings-selected"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; } } [self setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Roboto-Regular" size:12.0f], NSFontAttributeName, [UIColor grayColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal]; } @end 

पुराने प्रश्न, लेकिन मेरे समाधान को यहां तक ​​कि Xamarin.iOS / C # और इंटरफेस बिल्डर के माध्यम से छवियों को सेट करना चाहते हैं। मैंने इंटरफ़ेस बिल्डर के माध्यम से Selected Image और Image विशेषताओं को सेट किया है फिर कोड में मैंने InitTabs() विधि को इस तरह परिभाषित किया है:

 public void InitTabs(){ HomeTab.SelectedImage = HomeTab.SelectedImage.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); HomeTab.Image = HomeTab.Image.ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal); } 

InitTabs() कॉल InitTabs() कॉल करें और अब उचित छवि दोनों चयनित और अचयनित स्थिति के लिए दिखाई जाएगी।

स्विफ्ट-दोस्तों के लिए यहां एक स्विफ्ट समाधान है 🙂

 class CustomTabBar: UITabBar { required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) let btnNames = ["Title1", "Title2", "Title3", "Title4"] for (item, name) in zip(items!, btnNames) { item.image = UIImage(named: "bar\(name)Btn")?.imageWithRenderingMode(.AlwaysOriginal) item.selectedImage = UIImage(named: "bar\(name)SelectedBtn")?.imageWithRenderingMode(.AlwaysOriginal) item.title = name item.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.blackColor()], forState: .Normal) item.setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.redColor()], forState: .Selected) } } } 

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

  • बीटीएन खिताब की सरणी बनाएं और उन्हें मैच के लिए छवि फ़ाइल नाम पर विचार करें
  • टैब बार वस्तुओं पर लूप के लिए बनाएं और सिर्फ बीटीएन शीर्षलेखों की सरणी बनाई
  • बारबटन इटैम की छवि और उसके चयनित इमेज सरणी से सेट करें
  • सरणी से शीर्षक पाठ सेट करें
  • राज्यों के लिए शीर्षक पाठ का रंग सेट करें। सामान्य और। चयनित

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

यूआईएपीएरएरेंस एपीआई के साथ चयनित और अनसेक्टेड छवियों और शीर्षक दिखाने का स्विफ्ट संस्करण आपके एपीडीएटीएपी एमआई कोड में निम्नलिखित कोड को कॉपी करता है यदि आपके पास टैब बेस ऐप है। कोड के बाद मान लें कि आपके पास 4 टैब बार है

 let tabBarController: UITabBarController = (self.window!.rootViewController as! UITabBarController) let tabBar:UITabBar = tabBarController.tabBar let tabBarItem1:UITabBarItem = tabBar.items![0] let tabBarItem2:UITabBarItem = tabBar.items![1] let tabBarItem3:UITabBarItem = tabBar.items![2] let tabBarItem4:UITabBarItem = tabBar.items![3] tabBarItem1.title = "Home"; tabBarItem2.title = "Maps"; tabBarItem3.title = "My Plan"; tabBarItem4.title = "Settings"; tabBarItem1.selectedImage = UIImage(named: "home_selected.png")! tabBarItem2.selectedImage = UIImage(named: "maps_selected.png")! tabBarItem3.selectedImage = UIImage(named: "myplan_selected.png")! tabBarItem4.selectedImage = UIImage(named: "settings_selected.png")! tabBarItem1.image = UIImage(named: "home.png")! tabBarItem2.image = UIImage(named: "maps.png")! tabBarItem3.image = UIImage(named: "myplan.png")! tabBarItem4.image = UIImage(named: "settings.png")! let tabBarBackground: UIImage = UIImage(named: "tabbar.png")! UITabBar.appearance().backgroundImage = tabBarBackground UITabBar.appearance().selectionIndicatorImage = UIImage(named: "tabbar_selected.png")! UITabBarItem.appearance().setTitleTextAttributes([ NSForegroundColorAttributeName : UIColor.whiteColor() ] , forState: .Normal) let titleHighlightedColor: UIColor = UIColor(red: 153 / 255.0, green: 192 / 255.0, blue: 48 / 255.0, alpha: 1.0) UITabBarItem.appearance().setTitleTextAttributes([ NSForegroundColorAttributeName : titleHighlightedColor ] , forState: .Highlighted) 

अन्य सभी उत्तरों की कोशिश करने और संघर्ष करने के बाद, मुझे इसका जवाब मिला। अन्य जवाब,, वर्तमान स्विफ्ट संस्करण में काम करने के लिए नहीं लग रहे हैं। स्विफ्ट 2.3 में, यह मेरे लिए काम करता है उन लोगों के लिए जो अभी भी परेशानी में हैं, यह प्रयास करें:

 tabBarItem.image = UIImage(named: "image_name") searchVC.tabBarItem.selectedImage = UIImage(named: "image_name_when_selected")?.imageWithRenderingMode(.AlwaysOriginal)