大致分为两种方法:系统方法和自定义方法
系统方法:
系统自带的方法可以显示具体的消息数量,这个就是苹果设备常见的小红点。实现思路如下:
NSArray *tabBarItems = self.navigationController.tabBarController.tabBar.items; // 获取到需要展示消息的tabbarItem,属性badgeValue(标记个数)就是消息的条数 UITabBarItem *personCenterTabBarItem = [tabBarItems objectAtIndex:3]; personCenterTabBarItem.badgeValue = @"2";//显示消息条数为 2
效果如下图所示:
自定义方法:
自己将小红点图标放在想要显示的位置,控制UIImageView的hidden属性即可。实现思路如下:
// 创建一个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); // 设置小红点图标的frame dotImage.frame =CGRectMake(x, y, 8,8); // 将小红点imageView添加到tabbar上面 [self.navigationController.tabBarController.tabBar addSubview:dotImage];
效果如下图所示:
上面提到的方法,基本上可以放在ViewController的任何位置,不过还有一种情况做不到,就是App的桌面应用图标上的消息提示。
App的桌面应用图标上的消息提示,实现思路如下:
// 获取系统版本 if ([[XWGlobalHelper systemVersion] intValue] > 7.99 && [[XWGlobalHelper systemVersion] intValue] <9.001) { // IOS8 需要 设置 UIUserNotificationSettings *settings = [UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeBadge categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; } [UIApplication sharedApplication].applicationIconBadgeNumber = 3;