iOS开发UI篇—程序启动原理和UIApplication

一、UIApplication
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;

- (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 addSubview:btn];
}
-(void)onClick
{
    NSLog(@"按钮点击事件");
    //错误,只能有一个唯一的UIApplication对象,不能再进行创建
//    UIApplication *app=[[UIApplication alloc]init];
    
    //通过sharedApplication获取该程序的UIApplication对象
    UIApplication *app=[UIApplication sharedApplication];
    app.applicationIconBadgeNumber=123;
}


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


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


代码和效果: 


  //设置指示器的联网动画
    app.networkActivityIndicatorVisible=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;
}

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。