Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

IOS 中 UIApplication 常用属性简介

$
0
0

什么是 UIApplication?

  1. UIApplication 对象是应用程序的象征;
  2. 每一个应用都有自己的 UIApplication 对象,而且是单例的;
  3. 通过 [UIApplication sharedApplication] 可以获得这个单例对象;
  4. 一个 IOS 程序启动后创建的第一个对象就是 UIApplication 对象;
  5. 利用 UIApplication 对象,能进行一些应用级别的操作。

注意:UIApplication不能手动创建,不能alloc init,一个应用程序只允许 一个。

为什么要弄成单例?

UIApplication 对象是用来设置应用全局信息的,一个应用程序如果有很多 UIApplication 对象,就会导致不知道听谁的。

UIApplication 的作用:做应用级别的操作

1. 设置应用程序图标右上角的红色提醒数字

@property(nonatomic) NSInteger applicationIconBadgeNumber;

// 0. 获取应用程序的象征
UIApplication *app = [UIApplication sharedApplication];

// 1. 设置应用程序图标的提醒数字
app.applicationIconBadgeNumber = 10;

// 创建通知对象
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil];

// 注册用户通知(IOS 8 之后才需要注册用户通知,之前不需要,主要是为了提升用户体验)
[app registerUserNotificationSettings:setting];

2.设置联网指示器的可见性

@property(nonatomic,getter = isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible;

// 2. 设置联网指示器的提示
app.networkActivityIndicatorVisible = YES;

3.管理状态栏

从 IOS 7 开始,系统提供了2种管理状态栏的方式:
(1)通过 UIViewController 管理(每一个 UIViewController 都可以拥有自己不同的状态栏);
(2)通过 UIApplication 管理(一个应用程序的状态栏都由它统一管理)。

在 IOS 7 中,默认情况下,状态栏都是由 UIViewController 管理的,UIViewController 实现下列方法就可以轻松管理状态栏的可见性和样式:

状态栏的样式
- (UIStatusBarStyle)preferredStatusBarStyle;

状态栏的可见性
(BOOL)prefersStatusBarHidden;

在 IOS 7 之后,状态栏默认交给控制器管理,不能直接直接赋值为 YES,需要作一些配置。如果想利用 UIApplication 来管理状态栏,首先得修改 Info.plist 的设置,添加一行如下:
这里写图片描述

// 3. 设置状态栏
app.statusBarHidden = YES;

4. 打开一个资源

UIApplication有个功能十分强大的openURL:方法
- (BOOL)openURL:(NSURL)url;*

openURL:方法的部分功能有
打电话
*UIApplication *app = [UIApplication sharedApplication];
[app openURL:[NSURL URLWithString:@”tel://10086”]];

发短信
[app openURL:[NSURL URLWithString:@”sms://10086”]];

发邮件
[app openURL:[NSURL URLWithString:@”mailto://12345@qq.com”]];

打开一个网页资源
[app openURL:[NSURL URLWithString:@”http://www.baidu.com“]];

示例:

// 4. 打开网页(根据协议头判断用什么软件打开)
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
[app openURL:url];

UIApplication打开资源的好处:不用判断用什么软件打开,系统会自动根据协议头判断。

整个代码工程以及属性图示如下:
这里写图片描述

这里写图片描述

作者:huangfei711 发表于2016/11/18 18:22:03 原文链接
阅读:64 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>