在iOS8.0版本以前,想让应用出现在icon的右上角,以前是一句话调用就可以了,不过iOS以后苹果官方要加强用户的个人信息保护,所以很多东西要经过用户授权。
iOS8之前用下面一句话调用
//通过单例方式获得整个application
UIApplication * app = [UIApplicationsharedApplication];
//设置app的未读信息数量
app.applicationIconBadgeNumber =0;
iOS8.0以后需要通过用户同意,加上一下几句话
UIApplication * app = [UIApplicationsharedApplication];
if ([UIDevicecurrentDevice].systemVersion.floatValue>=8.0) {
UIUserNotificationType type =UIUserNotificationTypeBadge|UIUserNotificationTypeAlert|UIUserNotificationTypeSound;
UIUserNotificationSettings * setting = [UIUserNotificationSettingssettingsForTypes:type categories:nil];
[[UIApplicationsharedApplication]registerUserNotificationSettings:setting];
}
app.applicationIconBadgeNumber = 20;
这样就实现了4句话调用,显示小红点,想让小红点清空,需要设置数量为 app. applicationIconBadgeNumber = 0;
同时,分享大家另两个个知识点
UIApplication * app = [UIApplicationsharedApplication];
app.networkActivityIndicatorVisible =YES;
这是手机左上角,WiFi标志后显示小菊花转动的一句话调用。
在IOS7以后管理状态栏默认是属于UIViewController的,但同时也可以用UIApplication设置,在iOS7之前默认UIApplication.
在iOS7以后通过UIViewController设置状态栏
/**
* 设置状态栏隐藏
*
* @return 返回YES表示隐藏,否则不隐藏,默认为NO
*/
- (BOOL)prefersStatusBarHidden
{
return YES;
}
/**
* 设置状态了样式
*
* @return 枚举类型
*/
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
如果想要和iOS6一样设置状态栏就需要改一下属性,因为iOS7以后默认是UIViewcontroller设置的
- (void)buttonClick
{
UIApplication * app = [UIApplication sharedApplication];
/**
* 通过UIApplication设置状态栏的隐藏和显示
*/
app.statusBarHidden = YES;
/**
* 通过UIApplication设置状态栏的样式(白色)
*/
app.statusBarStyle = UIStatusBarStyleLightContent;
}
同时要在info.plist文件中将默认的状态栏控制器改为UIApplication,具体操作过程如下,点击+号,选择最后一个选项,以View controller-based status开头的选中即可,默认后面自动生成NO;
同时要注意一些小细节。用UIApplication设置状态栏,可以有动画效果
/**
* 设置状态栏的样式,有动画效果
*/
[app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
/**
* 设置状态栏的隐藏,有动画效果
*/
[app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
在iOS上应用级别的操作,都要获得UIApplication的单例,通过单例来操作,广义来说这个单例就是整个的程序。
希望能给大家带来帮助!