iOS UIKit - 视图结构
来源:互联网 发布:slack软件 编辑:程序博客网 时间:2024/04/30 01:38
(1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序。
(2)每一个应用都有自己的UIApplication对象,而且是单例的,如果试图在程序中新建一个UIApplication对象,那么将报错提示。
(3)通过[UIApplicationsharedApplication]可以获得这个单例对象
(4) 一个iOS程序启动后创建的第一个对象就是UIApplication对象,且只有一个(通过代码获取两个UIApplication对象,打印地址可以看出地址是相同的)。
(5)利用UIApplication对象,能进行一些应用级别的操作
一、使用步骤
1.main函数
2.UIApplicationMain
- 创建UIApplication对象
- 创建UIApplication的delegate对象
3.加载视图
(1)delegate对象开始处理(监听)系统事件(没有storyboard)
- 程序启动完毕的时候, 就会调用代理的application:didFinishLaunchingWithOptions:方法
- 在application:didFinishLaunchingWithOptions:中创建UIWindow
- 创建和设置UIWindow的rootViewController
- 显示窗口
(2)根据Info.plist获得最主要storyboard的文件名,加载最主要的storyboard(有storyboard)
- 创建UIWindow
- 创建和设置UIWindow的rootViewController
- 显示窗口
二、基本属性
1)设置应用程序图标右上角的红色提醒数字(如QQ消息的时候,图标上面会显示1,2,3条新信息等。)
@property(nonatomic) NSInteger applicationIconBadgeNumber;
2)设置联网指示器的可见性
@property(nonatomic,getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;
3)管理状态栏
从iOS7开始,系统提供了2种管理状态栏的方式
如果状态栏的样式只设置一次,那就用UIApplication来进行管理
如果状态栏是否隐藏,样式不一样那就用控制器进行管理
UIApplication来进行管理有额外的好处,可以提供动画效果
a.通过UIViewController管理(每一个UIViewController都可以拥有自己不同的状态栏).
在iOS7中,默认情况下,状态栏都是由UIViewController管理的,UIViewController实现下列方法就可以轻松管理状态栏的可见性和样式
状态栏的样式 - (UIStatusBarStyle)preferredStatusBarStyle;
状态栏的可见性 -(BOOL)prefersStatusBarHidden;
b.通过UIApplication管理(一个应用程序的状态栏都由它统一管理)
如果想利用UIApplication来管理状态栏,首先得修改Info.plist的设置
4)openURL:方法
UIApplication有个功能十分强大的openURL:方法
- (BOOL)openURL:(NSURL*)url;
openURL:方法的部分功能有
打电话 UIApplication *app = [UIApplicationsharedApplication]; [app openURL:[NSURLURLWithString:@”tel://10086”]];
发短信 [app openURL:[NSURLURLWithString:@”sms://10086”]];
发邮件 [app openURL:[NSURLURLWithString:@”mailto://12345@qq.com”]];
打开一个网页资源 [app openURL:[NSURLURLWithString:@”http://ios.itcast.cn“]];
打开其他app程序 openURL方法,可以打开其他APP。
5.UIAppDelegate生命周期
在app受到干扰时,会产生一些系统事件,这时UIApplication会通知它的delegate对象,让delegate代理来处理这些系统事件。当被打断的时候,通知代理进入到后台。
三、代码示例
四、总结
- iOS UIKit - 视图结构
- 窗口,视图,视图控制器和UIKit基础-IOS开发
- ios视图层次结构
- ios视图层次结构
- ios视图层次结构
- ios视图层次结构
- iOS视图层次结构
- IOS视图层次结构
- IOS UIKIT框架类之视图动画和坐标系介绍!
- IOS UIKIT框架类之窗口和视图架构介绍!
- IOS UIKit框架类之视图动画和坐标系介绍!
- IOS UIKit框架类之视图动画和坐标系介绍!
- IOS UIKit框架类之视图动画和坐标系介绍!
- IOS UIKit框架类之视图动画和坐标系介绍
- IOS UIKit框架类之窗口和视图架构介绍!
- IOS UIKit 框架类之视图动画和坐标系介绍
- IOS UIKIT框架类之窗口和视图架构介绍!
- UIKit 视图的生命周期
- 为什么eclipse模拟器上可以运行app,插上真机后却不可以运行还会出现com.example.xxx这样的错误
- JS之程序结构
- ViewPager多次切换后,TextView的文字出现重叠
- iOS开发支付集成之微信支付
- Maven学习 (四) 使用Nexus搭建Maven私服(WINDOWS)
- iOS UIKit - 视图结构
- JS之错误处理
- 【转】Android日常开发60条经验
- MTK6580适应小分辨率
- RQNOJ 142 拜年
- 使用Auto Layout实现和适配不等高复合型cell
- 图的存储和遍历
- windows下用pip安装paramiko------安装过程 依赖的模块pycrypto安装出了问题如何解决
- 整合谷歌Admob在Unity3D的Android和iOS游戏