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. UITabBar
Nổ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 selected
và unselected
là 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 UIView
theo ý muốn backgroundColor
và sau đó chỉ cần kết xuất nó thành một màu UIImage
vớ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 UIImage
nộ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 UITextAttributeTextColor
rõ ràng và thêm văn bản của bạn vào selected
và unselected
hình ảnh từ phần (2).