前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UIApplication 基础篇介绍

UIApplication 基础篇介绍

作者头像
iOS Magician
发布2023-03-22 21:13:22
3110
发布2023-03-22 21:13:22
举报

做iOS开发的同学对UIApplication一定不陌生,当我们想要弹框,蒙层等功能时,都会使用类似如下的操作:

UIWindow *delegateWindow = [UIApplication sharedApplication].delegate.window;

UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;

这里面delegateWindow和keyWindow的区别你是否了解?还有UIApplication是不是也深入了解过?

UIApplication,代表的是整个应用做的事,因此每个程序只能有一个,系统使用的是单例模式,就是上面的[UIApplication sharedApplication]来得到一个实例。这个单例实例是在系统启动时由main函数里面的UIApplicationMain方法生成,就是每个程序里都有的AppDelegate,它实现了UIApplicationDelegate的Protocol,也就是AppDelegate的一个实例。每次通过[UIApplication sharedApplication]调用的就是它。  

UIApplication在程序里的角色:它保存一个UIWindow对象序列,用来快速恢复views。

UIApplication的核心作用是提供了iOS程序运行期间的控制和协作工作。  

1.简单介绍

(1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。

(2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示。

(3)通过[UIApplicationsharedApplication]可以获得这个单例对象

(4) 一个iOS程序启动后创建的第一个对象就是UIApplication对象,且只有一个(通过代码获取两个UIApplication对象,打印地址可以看出地址是相同的)。

(5)利用UIApplication对象,能进行一些应用级别的操作

2.应用级别的操作示例:

1)设置应用程序图标右上角的红色提醒数字(如QQ消息的时候,图标上面会显示1,2,3条新信息等。)

@property(nonatomic) NSInteger applicationIconBadgeNumber;

代码实现和效果:

UIApplication 一些其他属性

//通过sharedApplication获取该程序的UIApplication对象

UIApplication *app=[UIApplication sharedApplication];

app.applicationIconBadgeNumber=123;

//设置指示器的联网动画

app.networkActivityIndicatorVisible=YES;

//设置状态栏的样式

//app.statusBarStyle=UIStatusBarStyleDefault;//默认(黑色)

//设置为白色+动画效果

[app setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

//设置状态栏是否隐藏

app.statusBarHidden=YES;

//设置状态栏是否隐藏+动画效果

[app setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档