2014-10-24 7 views
17

Seçilmemiş bir UITabBarItem başlığı ve arka plan görüntüsü iOS 8'in tintColor'u nasıl değiştirebilirim?Renk değiştirme Seçilmemiş UITabBarController öğesi başlığı ve arka plan görüntüsünün rengini değiştirme

, seçilmemiş devlet için varsayılan renk açık gri renkli, ama

ben [UIColor blackColor]

bir renge sahip benim seçilmemiş devlet istiyorum benim koyu gölge UITabBar arka plan üzerinde görünmüyor benim app temsilci didFinishLaunchingWithOptions iç

:

: Ben şu kodu kullanın application didFinishLaunchingWithOptions: içinde senin AppDelegate.m olarak
UIImage *deselectedE = [[UIImage imageNamed:@"mincraft_axe_green_32.png"] imageWithRenderingMode:UIImageRenderingModeAutomatic]; 
UIImage *selectedE = [[UIImage imageNamed:@"mincraft_axe_green_32.png"] imageWithRenderingMode:UIImageRenderingModeAutomatic]; 
e.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Profile" image:deselectedE selectedImage:selectedE]; 
[[UITabBar appearance] setTintColor:[UIColor blackColor]]; 
+3

10+ ve swif yazmadan varlık dosyasının öznitelikleri müfettiş gelen orijinal olarak t 3 'tabBarCtrl.tabBar.unselectedItemTintColor = UIColor.gray' – Anchor

+0

http://stackoverflow.com/a/40741444/1652402 –

cevap

45

Figured out out!

Kullanım Bu metnin rengini değiştirmek için:

[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor greenColor] } 
             forState:UIControlStateNormal]; 
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor blackColor] } 
             forState:UIControlStateSelected]; 

Ve bu görüntü oluşturma modu da bunu doğrudan ayarlayabilirsiniz

UIImage *deselectedImage = [[UIImage imageNamed:@"deselectedImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
UIImage *selectedImage = [[UIImage imageNamed:@"selectedImage"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
+5

Orijinal resimler güzel bir şeydir. Paylaşım için teşekkürler. – VaporwareWolf

+4

Orijinal simgem siyah ise ya da beyaz olmasını istiyorsam ne olur? –

+1

Benzer bir durumum vardı, ancak seçili olmayan görüntünün beyaz (orijinal resim beyaz) olmasını ve seçili görüntünün sarı (şu anda gri) olmasını istedim.Seçtiğim görüntünün rengini değiştirmeye istekli olsaydım yukarıdaki çözümünün işe yaradığından eminim, ancak seçilen görüntü için yerleşik "renk tonu" özelliğini kullanmak istedim. Seçili görüntüyü Sekme çubuğu Öğesi altındaki öznitelik denetçisine koymaya çalıştığımda, çalışma zamanında (hata) boş görüntüyü bıraktı. Bu çözümü uygulama temsilcisimde kullandım: [link] (http://stackoverflow.com/questions/26515703/set-tab-bar-item-selected-image-in-xcode-6) –

22

var
//unselected icon tint color 
[[UIView appearanceWhenContainedIn:[UITabBar class], nil] setTintColor:[UIColor redColor]]; 

//selected tint color 
[[UITabBar appearance] setTintColor:[UIColor greenColor]]; 

//text tint color 
[[UITabBarItem appearance] setTitleTextAttributes:@{ NSForegroundColorAttributeName : [UIColor whiteColor] } 
            forState:UIControlStateNormal]; 

//background tint color 
[[UITabBar appearance] setBarTintColor:[UIColor blueColor]]; 
+11

Bu öğenin seçilmesinden sonra seçili olmayan renk tonunun değiştirilmesi geri alınmaz. Seçilmemiş durumu istediğiniz renk haline getirmenin tek yolunun kendi imajınızı kullanmak olduğu görülmektedir. Burada nasıl yapılacağını görebilirsiniz: http://stackoverflow.com/a/19662170/4114683 – TheSD

+0

Ayrıca, [[UIButton görünüm] setTintColor: [UIColor greenColor]]; 'tutmak için çalıştı denedim ve öğrendim iOS 7/8'de seçilen sekme çubuğu öğeleri ve düğme etiketleri arasındaki tutarlılık (örneğin Müzik uygulaması gibi) –

+0

Bir çekicilik gibi çalışın. Teşekkürler! –

0

görüntüler için ORIGINAL ayarlı olduğundan emin olun Storyboard ... burada benim cevap kontrol edin: How to set UITabBarItem's unselected tint, ***including system items*** (iOS7)

Eğer Storyboa kullanıyorsanız rd'de, Bar Item için Image ve Selected Bar Item için Selected Image değerini değiştirerek tabBar'da değiştirilmemiş bir görüntü elde edebilirsiniz.

Alternatif Assets katalogda, sen Render As seçebilirsiniz: Resminiz (View>Utilities>Show Attributes Inspector veya kısayol ⌥⌘4 (Seçenek + Command + 4))

+0

iOS 11'de doğru değil – coolcool1994

14

Ayrıca görüntü işleyebilir niteliklerini Original Image herhangi bir kod iOS'taki

enter image description here

+1

Film şeridinden değil, varlık dosyası için Nitelikler Denetçisinden. Bunun dışında, buradaki en iyi cevap budur. – Marmoy