Mevcut cevaplarda bazı iyi fikirler var, birçoğu biraz farklı çalışıyor ve ne seçeceğiniz, hangi cihazları hedeflediğinize ve ne tür bir görünüm elde etmeyi hedeflediğinize bağlı olacaktır. UITabBargörünüşünü özelleştirmeye geldiğinde herkesin bildiği gibi mantıksız, ancak işte yardımcı olabilecek birkaç püf noktası:
1). Daha düz bir görünüm için parlak kaplamadan kurtulmak istiyorsanız şunları yapın:
tabBar.backgroundColor = [UIColor darkGrayColor];
[tabBar.subviews[0] removeFromSuperview];
2). Özel görüntüleri tabBar düğmelerine ayarlamak için aşağıdaki gibi bir şey yapın:
for (UITabBarItem *item in tabBar.items){
[item setFinishedSelectedImage:selected withFinishedUnselectedImage:unselected];
[item setImageInsets:UIEdgeInsetsMake(6, 0, -6, 0)];
}
Nerede selectedve unselectedHangi UIImageseçtiğiniz nesneler. Düz bir renk olmasını isterseniz, bulduğum en basit çözüm UIView, istenen ile bir tane oluşturmak backgroundColorve ardından onu UIImageQuartzCore yardımıyla sadece bir a haline getirmek. Görünümün içeriğiyle UIViewbir almak için bir kategoride aşağıdaki yöntemi kullanıyorum UIImage:
- (UIImage *)getImage {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [[UIScreen mainScreen]scale]);
[[self layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
3) Son olarak, düğmelerin başlıklarının stilini özelleştirmek isteyebilirsiniz. Yapmak:
for (UITabBarItem *item in tabBar.items){
[item setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor redColor], UITextAttributeTextColor,
[UIColor whiteColor], UITextAttributeTextShadowColor,
[NSValue valueWithUIOffset:UIOffsetMake(0, 1)], UITextAttributeTextShadowOffset,
[UIFont boldSystemFontOfSize:18], UITextAttributeFont,
nil] forState:UIControlStateNormal];
}
Bu, bazı ayarlamalar yapmanızı sağlar, ancak yine de oldukça sınırlıdır. Özellikle, metnin düğme içinde nereye yerleştirileceğini özgürce değiştiremezsiniz ve seçili / seçilmemiş düğmeler için farklı renklere sahip olamazsınız. Daha spesifik bir metin düzeni yapmak istiyorsanız, sadece UITextAttributeTextColornet olacak şekilde ayarlayın ve metninizi bölüm (2) 'den selectedve unselectedresimlerine ekleyin .