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;
}