UIApplication 簡單筆記

本文详细介绍了UIApplication的功能及使用方法,包括获取UIApplication实例、摇晃undo设置、状态栏控制、网络活动指示器控制以及后台运行特性。

Contents

  • 常用的功能
  • 小結

    所有的 iPhone 應用程式都有唯一的一個 UIApplication instance,這個 instance 提供 GUI 程式訊息(Event)處理的主迴圈(如果你寫過 Win32 sdk 程式應該很清楚這玩意),和一些 屬於應用程式的外觀設定和行為,如 status bar, Application Icon Badge Number [1] 等等。

    (1)Application Icon Badge Number 显示在应用程式Icon上面的数字(见下图)。 


    常用的功能

    UIApplication 會用到的東西其實沒有很多,這邊簡單介紹一下常用的部份。

    取得 application instance

    前面有提到在 iPhone 應用程式中有唯一的一個 UIApplication instance , 要存取諸如 status bar 目前的位置狀態或是設定註冊 Push Notification [2] 等等。

    如何取得? 很簡單 copy 下面的 code 就好,不會有第二種寫法,也完全不用考量什麼 記憶體管理。

    UIApplication *app = [UIApplication sharedApplication];

    [2]Push Notification: iPhone 3.0 新增的功能,用來唬爛可以滿足部分多工需求的功能。(好啦,是真的還不錯)


    Apple Waves 有篇十分精采的解說 (連結請自便)

    http://applemacnews.mysinablog.com/index.php?op=ViewArticle&articleId=1884149

    搖晃 undo 設定

    iPhone 3.0 新增的酷炫功能! 搖晃手機 undo也是在 UIApplication 裡面設定的。

    UIApplication* app = [UIApplication sharedApplication];
    // 是的!搖晃時 undo
    app.applicationSupportsShakeToEdit = YES;

    status bar 的控制

    我們都知道 iPhone 可以知道自己在旋轉,並針對垂直或水平提供不同的畫面佈局, status bar 的相關設定用法如下:

    UIApplication* app = [UIApplication sharedApplication];
    app.statusBarOrientation = UIInterfaceOrientationLandscapeLeft;

    ok 想要隱藏 status bar的話,也很簡單:
    UIApplication *app = [UIApplication sharedApplication];
    app.statusBarHidden = YES;

    當然啦這種布林狀態的東西常常需要的動作其實是 toggle,也很簡單:

    UIApplication *app = [UIApplication sharedApplication];
    (app.statusBarHidden) ? (app.statusBarHidden = NO) : (app.statusBarHidden = YES);

    控制 network active indicator

    Network Active Indictor 是什麼? 看圖最清楚:


    控制他顯示與否:

    UIApplication *app = [UIApplication sharedApplication];
    (app.networkActivityIndicatorVisible) ? (app.networkActivityIndicatorVisible = NO) : (app.networkActivityIndicatorVisible = YES);

    Background

    iPhone OS 4.0 的新特色--多工,因應這個新東西 UIApplicaiton 也提供一些背景執行 需要的功能和資訊。

    properties 方面

    applicaitonState 可以得知目前應用程式所處的狀態如 active, background 等等 下面是完整的資訊:

    typedef enum {
       UIApplicationStateActive,
       UIApplicationStateInactive,
       UIApplicationStateBackground
    } UIApplicationState;

    backgroundTimeRemaining 顯示應用程式剩餘多少時間進入 background 的 suspended 狀態。

    iPhone OS 4.0 允許應用程式進入背景後要求額外的系統資源 (cpu time) 來處理額外或是比較 大量的工作,由下面兩個 method 處理這方面的要求和結束要求,記住系統資源是有限的,記憶體 如此, cpu time 亦是如此,請明確使用 endBackgroundTask: 來釋放多工的系統資源。

    小結

    UIApplication 是個很簡單易懂也十分重要的,希望這篇會有幫助。

    文章转自:http://psvsps2.blogspot.com/2010/04/uiapplication-contents-application_20.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值