大致分為兩種方法:系統(tǒng)方法和自定義方法
系統(tǒng)方法:
系統(tǒng)自帶的方法可以顯示具體的消息數(shù)量,這個就是蘋果設(shè)備常見的小紅點。實現(xiàn)思路如下:
NSArray *tabBarItems = self.navigationController.tabBarController.tabBar.items; // 獲取到需要展示消息的tabbarItem凹耙,屬性badgeValue(標記個數(shù))就是消息的條數(shù) UITabBarItem *personCenterTabBarItem = [tabBarItems objectAtIndex:3]; personCenterTabBarItem.badgeValue = @"2";//顯示消息條數(shù)為 2
效果如下圖所示:
自定義方法:
自己將小紅點圖標放在想要顯示的位置冰单,控制UIImageView的hidden屬性即可幌缝。實現(xiàn)思路如下:
// 創(chuàng)建一個UIImageView灸促,存放小紅點圖片 UIImageView *dotImage = [[UIImageViewalloc] initWithImage[UIImageimageNamed:@"red_point_small"]]; dotImage.backgroundColor = [UIColorclearColor]; // 獲取tabbarItame的frame CGRect tabFrame =self.navigationController.tabBarController.tabBar.frame; CGFloat x =ceilf(0.9 * tabFrame.size.width); CGFloat y =ceilf(0.1 * tabFrame.size.height); // 設(shè)置小紅點圖標的frame dotImage.frame =CGRectMake(x, y, 8,8); // 將小紅點imageView添加到tabbar上面 [self.navigationController.tabBarController.tabBar addSubview:dotImage];
效果如下圖所示:
上面提到的方法,基本上可以放在ViewController的任何位置涵卵,不過還有一種情況做不到浴栽,就是App的桌面應(yīng)用圖標上的消息提示。
App的桌面應(yīng)用圖標上的消息提示轿偎,實現(xiàn)思路如下:
// 獲取系統(tǒng)版本 if ([[XWGlobalHelper systemVersion] intValue] > 7.99 && [[XWGlobalHelper systemVersion] intValue] <9.001) { // IOS8 需要 設(shè)置 UIUserNotificationSettings *settings = [UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeBadge categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; } [UIApplication sharedApplication].applicationIconBadgeNumber = 3;