Ada beberapa ide bagus dalam jawaban yang ada, banyak yang berfungsi sedikit berbeda dan apa yang Anda pilih juga akan bergantung pada perangkat yang Anda targetkan dan jenis tampilan yang ingin Anda capai. UITabBarterkenal tidak intuitif saat harus menyesuaikan tampilannya, tetapi berikut beberapa trik yang dapat membantu:
1). Jika Anda ingin menghilangkan overlay glossy untuk tampilan yang lebih datar, lakukan:
tabBar.backgroundColor = [UIColor darkGrayColor];
[tabBar.subviews[0] removeFromSuperview];
2). Untuk mengatur gambar khusus ke tombol tabBar lakukan sesuatu seperti:
for (UITabBarItem *item in tabBar.items){
[item setFinishedSelectedImage:selected withFinishedUnselectedImage:unselected];
[item setImageInsets:UIEdgeInsetsMake(6, 0, -6, 0)];
}
Dimana selecteddan unselectedberadaUIImage objek pilihan Anda. Jika Anda ingin mereka menjadi warna datar, solusi paling sederhana yang saya temukan adalah membuat UIViewdengan yang diinginkan backgroundColordan kemudian mengubahnya menjadi a UIImagedengan bantuan QuartzCore. Saya menggunakan metode berikut dalam kategori di UIViewuntuk mendapatkan UIImagedengan konten tampilan:
- (UIImage *)getImage {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [[UIScreen mainScreen]scale]);
[[self layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
3) Terakhir, Anda mungkin ingin menyesuaikan gaya judul tombol. Melakukan:
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];
}
Ini memungkinkan Anda melakukan beberapa penyesuaian, tetapi masih sangat terbatas. Khususnya, Anda tidak dapat dengan bebas mengubah tempat teks ditempatkan di dalam tombol, dan tidak dapat memiliki warna berbeda untuk tombol yang dipilih / tidak dipilih. Jika Anda ingin membuat tata letak teks yang lebih spesifik, cukup atur UITextAttributeTextColormenjadi jelas dan tambahkan teks Anda ke dalam selecteddan unselectedgambar dari bagian (2).