Theo mặc định trong UITabbar, có một đánh dấu bóng trên UITabBarItem đã chọn.Làm thế nào để loại bỏ các điểm nổi bật bóng trên UITabBarItem được chọn trong iOS?
Có thể xóa mặt nạ đánh dấu bóng không?
Cảm ơn.
Theo mặc định trong UITabbar, có một đánh dấu bóng trên UITabBarItem đã chọn.Làm thế nào để loại bỏ các điểm nổi bật bóng trên UITabBarItem được chọn trong iOS?
Có thể xóa mặt nạ đánh dấu bóng không?
Cảm ơn.
[[UITabBar appearance] setSelectionIndicatorImage:[UIImage {anImage}]]
này có hiệu lực thi hành trên tất cả các thanh tabbar bạn sử dụng (ngay cả những subclassed)
Nếu bạn sử dụng một hình ảnh ở đây có màu sắc tương tự như nền thanh tabbar của bạn, bạn sẽ không thấy một chỉ báo.
Có thể bạn thậm chí có thể sử dụng hình ảnh trong suốt đầy đủ hoặc hình ảnh có kích thước 1px * 1px.
Trong trường hợp nếu bạn đang tùy chỉnh các mục trong tab tab có hình ảnh tùy chỉnh, bạn có thể làm như vậy. Tôi đã tùy chỉnh các mục tab tab bằng cách thêm hình nền vào thanh tab với tất cả các tab được vẽ, một tab ở trạng thái đã chọn và các tab khác ở trạng thái không được chọn. Trong mỗi didSelectViewController tôi thay đổi hình nền. Hơn nữa, tôi mang chế độ xem hình nền lên phía trước và thêm nhãn tùy chỉnh với tiêu đề cần thiết.
Kết quả: Tôi có thanh tab tùy chỉnh không có hiệu ứng bóng. Thú vị là UITabBarButtons nằm dưới hình nền, nhưng vẫn có thể chọn được.
Mã này là một cái gì đó như thế:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
[self customizeTabBar];
}
- (void)customizeTabBar {
NSString *imageName = [NSString stringWithFormat:@"tabbg%i.png", tabBarCtrl.selectedIndex + 1];
for(UIView *view in tabBarCtrl.tabBar.subviews) {
if([view isKindOfClass:[UIImageView class]]) {
[view removeFromSuperview];
}
}
UIImageView *background = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:imageName]] autorelease];
[tabBarCtrl.tabBar insertSubview:background atIndex:0];
[tabBarCtrl.tabBar bringSubviewToFront:background];
//if needed, here must be adding UILabels with titles, I didn't need it.
}
Có lẽ bạn sẽ quan tâm về vấn đề này :)
Tôi nên thêm mã này ở đâu? – chatur
trong đó UIViewController
Cảm ơn rất nhiều Mitya .. !! – chatur
[[UITabBar appearance] setSelectionIndicatorImage:[[UIImage alloc] init]];
trình như một say mê!
Ai đó nên đánh dấu điều này là chính xác .. <3 –
Câu trả lời xuất sắc, nhưng lưu ý rằng điều này sẽ ảnh hưởng đến TẤT CẢ UITabBars, thậm chí cả những người là lớp con. –
Theo Apple's Tài liệu bạn có thể thực hiện:
(void)setFinishedSelectedImage:
(UIImage *)selectedImage withFinishedUnselectedImage:
(UIImage *)unselectedImage
Đó là một phương pháp UITabBar
Sử dụng http://ioscodesnippet.tumblr.com/post/9247898208/creating -a-placeholder-uiimage-động-với-màu sắc để tạo ra hình ảnh rõ ràng. Hoạt động tuyệt vời. – nh32rg