iosUI篇程序启动原理和UIApplication

一、UIApplication

1.简单介绍

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

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

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

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

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

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

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

                                            @property (nonatomic)NSInteger applicationIconBadgeNumber;

                                       代码的实现和效果

                                      

- (void)viewDidLoad
{
      [super viewDidLoad];
      //创建并添加一个按钮
      UIButton *btn = [UIButton alloc] initWithFrame:CGRectMake(100, 100, 60, 30);
      [btn setTitle:@"按钮" forState:UIControlStateNormal];
      [btn setBackgroundColor:[UIColor brownColor]];
      [btn addTarget:self action:@selector(onClick) forControlEvents:UIControlEventTouchUpInside];
      [self.view addSuview:btn];

}
- (void)onClick {
    NSLog(@"按钮点击事件");
    //错误,只能有一个唯一的UIApplication对象,不能再进行创建
//   UIApplication *app = [[UIApplication alloc] init];

//通过shareApplication获取该程序的UIApplication对象
UIApplication *app = [UIApplication sharedApplication];

app.applicationIconBadgeNumber = 123;
}

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

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

                                       代码如下:

       

//设置指示器的联网动画
app.networkAcivityIndicatorVisible = YES;

                                    3)管理状态栏

                                      从ios7开始,系统提供了2种管理状态栏的方式

                                     a.通过UIViewController管理(每一个UIViewController都可以拥有一个自己的不同的状态栏)

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

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

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

        

#pragma mark - 设置状态栏的样式
- (UIStatusBarStyle) preferredStatusBarStyle
{
    //设置为白色
    //return UIStatusBarStyleLightContent;
    //默认为黑色
    return UIStatusBarStyleDefault;
}

#pragma mark - 设置状态栏是否隐藏(否)
- (BOOL)prefersStatusBarHidden
{
   return NO;
}

                          3)openURL:方法

                                  UIApplication有个功能十分强大的openURL:方法

                                  - (BOOL)openURL:(NSURL*)url;

                                  openURL:方法的部分功能有

                                  打电话 

UIApplication *app = [UIApplicaton sharedApplication];
[app openURL:[NSURL URLWithString:@"tel://10086"]];

                                   发短信

[app openURL:[NSURL URLWithString:@"sms://10086"]];

                                  发邮件

[app openURL:[NSURL URLWithString:@"mailto://12345@qq.com"]];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值