Có một số ý tưởng tốt trong các câu trả lời hiện có, nhiều ý tưởng hoạt động hơi khác một chút và những gì bạn chọn cũng sẽ phụ thuộc vào thiết bị bạn nhắm mục tiêu và kiểu dáng bạn muốn đạt được. UITabBarNổi tiếng là không trực quan khi tùy chỉnh diện mạo của nó, nhưng sau đây là một số thủ thuật khác có thể giúp ích:
1). Nếu bạn đang muốn loại bỏ lớp phủ bóng để có giao diện phẳng hơn, hãy làm:
tabBar.backgroundColor = [UIColor darkGrayColor];
[tabBar.subviews[0] removeFromSuperview];
2). Để đặt hình ảnh tùy chỉnh cho các nút tab Thanh, hãy làm như sau:
for (UITabBarItem *item in tabBar.items){
[item setFinishedSelectedImage:selected withFinishedUnselectedImage:unselected];
[item setImageInsets:UIEdgeInsetsMake(6, 0, -6, 0)];
}
Ở đâu selectedvà unselectedlà UIImageđối tượng do bạn lựa chọn. Nếu bạn muốn chúng có màu phẳng, giải pháp đơn giản nhất mà tôi tìm thấy là tạo ra một màu UIViewtheo ý muốn backgroundColorvà sau đó chỉ cần kết xuất nó thành một màu UIImagevới sự trợ giúp của QuartzCore. Tôi sử dụng phương pháp sau trong một danh mục trên UIViewđể lấy UIImagenội dung của chế độ xem:
- (UIImage *)getImage {
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [[UIScreen mainScreen]scale]);
[[self layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
3) Cuối cùng, bạn có thể muốn tùy chỉnh kiểu dáng của tiêu đề các nút. Làm:
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];
}
Điều này cho phép bạn thực hiện một số điều chỉnh, nhưng vẫn còn khá hạn chế. Đặc biệt, bạn không thể tự do sửa đổi vị trí đặt văn bản trong nút và không thể có các màu khác nhau cho các nút đã chọn / không được chọn. Nếu bạn muốn bố trí văn bản cụ thể hơn, chỉ cần thiết lập UITextAttributeTextColorrõ ràng và thêm văn bản của bạn vào selectedvà unselectedhình ảnh từ phần (2).