UIApplication-UI进阶

  • UIApplication对象是应用程序的象征
  • 每个应用都有自己的UIApplication对象,而且是单例的
  • 通过[UIApplicationsharedApplication]获得这个单例对象
  • 一个iOS程序启动后创建的第一个对象就是UIApplication对象
  • 利用UIApplication对象,能进行一些应用级别的操作 


1* 整个APP中只有一个UIApplication,不能通过[[UIApplicationalloc]init]创建对象,否则程序一运行就会报错


错误信息如下(一般查看错误原因,reason就好):



2* UIApplication对象属于单例对象,一般情况下单例对象的方法都是以share单词开头


通过shareApplication方法返回的对象总是同一个.

打印对象,可以看到两个指针变量都指向同一地址(对象).



3*设置appIcon提醒数字,必须注册用户通知

当我们不知道如何使用某个对象的时候,我们应该进入这个类的头文件中查看该类具有的属性以及方法,

进入UIApplication,可以看到设置应用图标提醒数的属性

//set to 0 to hide. default is 0. In iOS 8.0and later, your application must register for user notifications using-[UIApplication registerUserNotificationSettings:] before being able to set theicon badge.

@property(nonatomic)NSIntegerapplicationIconBadgeNumber

//根据这个属性的说明可知,applicationIconBadgeNumber =0的时候默认隐藏,iOS8.0开始,必须注册用户通知才能设置应用图标提醒数字,否则是无法设置的

当只有app.applicationIconBadgeNumber = 10;这一行代码时,模拟器显示效果如图,虽然设置数字为10,依然无法显示


当我们注册之后,如下图所示注册方法


运行到模拟器中显示的效果为首先弹出选择框,由用户决定是否允许提醒,如果用户选择不允许,就不出出现提醒数字,当用户选择提醒,在以后使用软件的过程中就可以收到提醒:




4*设置联网状态

 // showingnetwork spinning gear in status bar. default is NO

@property(nonatomic,getter=isNetworkActivityIndicatorVisible)BOOLnetworkActivityIndicatorVisible;

由此可知,联网状态的显示在状态栏,而且默认是NO,即不显示.如果需要显示把属性值改为YES!

//设置联网状态

app.networkActivityIndicatorVisible = YES; 显示效果如图


5*设置状态栏的显示与隐藏

//Setting statusBarHidden does nothing if your application is using the defaultUIViewController-based status bar system.

如果使用的是默认的基于status bar系统的UIViewController,设置statusBarHidden是没有任何作用的

@property(nonatomic,getter=isStatusBarHidden)BOOLstatusBarHidden;

iOS7之前,状态栏由UIApplication对象控制,iOS7之后状态栏由控制器决定

iOS之前


iOS7之后


尽管现在状态栏默认由控制器管理,但是以后在一个项目中有很多个控制器,在每个控制器都需要设置状态栏的隐藏是非常麻烦的,所以最好还是通过UIApplication对象管理,如果想让UIApplication对象管理状态栏的显示与隐藏,需要对配置文件做一些设置,设置如下



经过上面的设置,就可以采用iOS7之前的做法了,状态栏不再显示




6*通过UIApplication控制网页


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值