UIKit框架(7)應(yīng)用程序?qū)ο骍IApplication

本篇本章介紹:

成都創(chuàng)新互聯(lián)作為成都網(wǎng)站建設(shè)公司,專注網(wǎng)站建設(shè)公司、網(wǎng)站設(shè)計(jì),有關(guān)成都定制網(wǎng)站方案、改版、費(fèi)用等問題,行業(yè)涉及混凝土攪拌站等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶的尊重與認(rèn)可。

    UIApplication對(duì)象、UIAppDelegate中的方法、App啟動(dòng)過程

    以及狀態(tài)欄的管理、應(yīng)用程序間跳轉(zhuǎn)等實(shí)用功能

  • UIApplication對(duì)象介紹

UIApplication對(duì)象是應(yīng)用程序的象征,一個(gè)UIApplication對(duì)象就代表一個(gè)應(yīng)用程序。

     通過[UIApplication sharedApplication]可以獲得這個(gè)單例對(duì)象

+ (UIApplication *)sharedApplication

     一個(gè)iOS程序啟動(dòng)后創(chuàng)建的第一個(gè)對(duì)象就是UIApplication對(duì)象

     利用UIApplication對(duì)象,能進(jìn)行一些應(yīng)用級(jí)別的操作

keyWindow屬性:

@property(nonatomic, readonly) UIWindow *keyWindow   //應(yīng)用程序的主窗口

    Mac環(huán)境下的一個(gè)應(yīng)用是可以具有多個(gè)窗口的,正在獲得用戶操作的創(chuàng)建即為keyWindow

    而iOS下的應(yīng)用只有一個(gè)窗口,就是這個(gè)keyWindow

    UIView及其子類,也可以通過其屬性window獲得這個(gè)window

狀態(tài)欄上的網(wǎng)絡(luò)活動(dòng)指示器控制

@property(nonatomic, getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible //狀態(tài)欄的網(wǎng)絡(luò)活動(dòng)指示器

    通過改變這個(gè)屬性,可以方便地控制網(wǎng)絡(luò)活動(dòng)指示器的顯示(轉(zhuǎn)動(dòng)的菊花)

手機(jī)桌面App圖標(biāo)上的紅色數(shù)字

@property(nonatomic) NSInteger applicationIconBadgeNumber //圖標(biāo)上的紅色數(shù)字

    通過修改這個(gè)屬性,可以在App圖標(biāo)上顯示提示數(shù)字信息,一般在消息推送的回調(diào)方法中使用

...

     

  • 狀態(tài)欄的管理

自iOS7開始,提供了兩種管理狀態(tài)的方式: 控制器管理、UIApplication對(duì)象管理

控制器管理(默認(rèn))

     實(shí)現(xiàn)下面的兩個(gè)方法即可輕松管理狀態(tài)欄

- (UIStatusBarStyle)preferredStatusBarStyle  //狀態(tài)欄的樣式
- (BOOL)prefersStatusBarHidden //狀態(tài)欄是否隱藏

使用UIApplication管理狀態(tài)欄

1)首先修改info.plist

     UIKit框架(7)應(yīng)用程序?qū)ο骍IApplication

2)使用UIApplication單例對(duì)象的以下方法

@property(nonatomic, getter=isStatusBarHidden) BOOL statusBarHidden  //狀態(tài)欄是否隱藏
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation
@property(nonatomic) UIStatusBarStyle statusBarStyle //狀態(tài)欄樣式
- (void)setStatusBarStyle:(UIStatusBarStyle)statusBarStyle animated:(BOOL)animated
@property(nonatomic, readonly) CGRect statusBarFrame //狀態(tài)欄的frame

     

  • App間跳轉(zhuǎn)

UIApplication有個(gè)功能十分強(qiáng)大的openURL:方法

- (BOOL)openURL:(NSURL *)url

iPhone中一些自帶應(yīng)用的跳轉(zhuǎn)格式:

    用來打電話:

     [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@”tel://10086”];

    用來發(fā)短信:

     [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@”sms://10086”]];

    用來發(fā)郵件 :

     [[UIApplication sharedApplication] openURL: [NSURL URLWithString:@”mailto://123456@qq.com”]];

    請(qǐng)求打開網(wǎng)頁(yè):(轉(zhuǎn)到瀏覽器)

     [[UIApplication sharedAplication] openURL: [NSURL URLWithString:@”http://www.baidu.com”]];

如跳轉(zhuǎn)到AppStore:

https://itunes.apple.com/us/app/zou-yi-zou-ba/idxxx?mt=8&uo=4

    其中xxx是對(duì)應(yīng)App的id(在iTunnes-Connect中查詢)

  • UIApplication的代理

移動(dòng)操作都具有致命的的缺點(diǎn):

     app很容被打擾,比如一個(gè)來電或鎖屏都會(huì)導(dǎo)致app進(jìn)入后臺(tái)甚至被終止。

     在很多其他情況會(huì)導(dǎo)致app受到干擾,在app受到干擾時(shí),會(huì)產(chǎn)生一些系統(tǒng)事件

     此時(shí)UIApplication會(huì)通知它的delegate對(duì)象,讓delegate代理來處理這些系事件。

Delegate可處理的事件包括:

     應(yīng)用程序的生命周期事件(如程序啟動(dòng)和關(guān)閉)、系統(tǒng)事件(如來電)、內(nèi)存警告…

每次新建完項(xiàng)目,都帶個(gè)帶有”AppDelegate”類,它就是UIApplication的代理。

     該類默認(rèn)已經(jīng)遵守了UIApplicationDelegate協(xié)議,已經(jīng)是UIApplication的代理。

     UIKit框架(7)應(yīng)用程序?qū)ο骍IApplication

  • App啟動(dòng)過程

1)main函數(shù)中執(zhí)行了一個(gè)UIApplicationMain這個(gè)函數(shù)

int UIApplicationMain ( int argc, char *argv[], NSString *principalClassName,NSString *delegateClassName );

     該函數(shù)接收了: 命令行參數(shù) 、UIApplication子類名 、UIApplication代理類名

2)UIApplicationMain函數(shù)會(huì)根據(jù)principalClassName創(chuàng)建 UIApplication對(duì)象,根據(jù)delegateClassName創(chuàng)建一個(gè)delegate對(duì)象,并將該delegate對(duì)象賦值給 UIApplication對(duì)象中的delegate屬性

3)接著會(huì)建立應(yīng)用程序的Main Runloop(事件循環(huán)),進(jìn)行事件的處理(首先會(huì)在程序完畢后調(diào)用delegate對(duì)象的application:didFinishLaunchingWithOptions:方法)

4)程序正常退出時(shí)UIApplicationMain函數(shù)才返回

本文題目:UIKit框架(7)應(yīng)用程序?qū)ο骍IApplication
文章源于:http://muchs.cn/article36/jiossg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、網(wǎng)站設(shè)計(jì)、ChatGPT、網(wǎng)站排名、電子商務(wù)、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)