你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS UIApplication

iOS UIApplication

編輯:IOS開發綜合

整個應用程序的象征,一個應用程序就一個UIApplication對象,使用了單例設計模式,通過[UIApplication sharedApplication]訪問這個單例對象。

 

1> 整個應用程序的象征,一個應用程序就一個UIApplication對象,使用了單例設計模式

2> 通過[UIApplication sharedApplication]訪問這個單例對象

2.常見用法

1> 設置圖標右上角的紅色提示數字

app.applicationIconBadgeNumber = 10;

2> 設置狀態欄的樣式

app.statusBarStyle = UIStatusBarStyleBlackOpaque;

3> 控制狀態欄的顯示和隱藏

app.statusBarHidden = YES;

4> 顯示狀態欄上面的圈圈

app.networkActivityIndicatorVisible = YES;

5> 打開外部資源

 

// URL : 一個資源的唯一路徑

 

// URL的組成 == 協議頭://主機域名/路徑

 

// 網絡資源URL的組成 == http://www.baidu.com/1.png

 

// 本地文件資源URL的組成 == file:///Users/apple/Desktop/1.png


  • 打開網頁

    [app openURL:[NSURL URLWithString:@“http://www.baidu.com”]];
  • 打電話

    [app openURL:[NSURL URLWithString:@“tel://10086”]];
  • 發短信

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

    6> 代理屬性(當應用程序發生了一些系統級別的事件,就會通知代理,交給代理去處理)

    @property(nonatomic,assign) id delegate;

    UIApplicationDelegate的代理方法

    pragma mark 程序加載完畢(啟動完畢)就會調用一次

    • (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions

      pragma mark 應用程序失去焦點的時候調用(一個app如果失去焦點,就不能跟用戶進行交互)

      • (void)applicationWillResignActive:(UIApplication *)application

        pragma mark 程序進入後台就會調用

        • (void)applicationDidEnterBackground:(UIApplication *)application

          pragma mark 程序即將進入前台的時候調用

          • (void)applicationWillEnterForeground:(UIApplication *)application

            pragma mark 應用程序獲得焦點的時候調用(一個app只有獲得焦點之後才能跟用戶進行交互)

            • (void)applicationDidBecomeActive:(UIApplication *)application

              pragma mark 程序即將被關閉的時候可能會被調用

              • (void)applicationWillTerminate:(UIApplication *)application

                pragma mark 程序接收到內存警告都會調用

                • (void)applicationDidReceiveMemoryWarning:(UIApplication *)application

                  1、狀態欄UIStateBar的設置是在UIApplication裡面設置的,它包含4中風格

                  2、 - (void)beginIgnoringInteractionEvents;

                  - (void)endIgnoringInteractionEvents;

                  - (BOOL)isIgnoringInteractionEvents;

                  這三種方法一般用於動畫開始和結束設置,讓動畫執行期間,用戶的其他觸摸事件暫時不去響應。這樣就不用弄遮罩層了,視圖上的其他控件就沒法響應了,等到動畫結束後才能響應。

                  3、@property(nonatomic,getter=isIdleTimerDisabled) BOOL idleTimerDisabled;

                  屬性:用來設置屏幕是否進入睡眠,默認是NO,即默認是會進入睡眠的,一般情況下只有游戲或者是一直需要用戶交互事件的才設置為YES,不讓它空閒的時候自動進入睡眠

                  4、networkActivityIndicatorVisible

                  屬性:設置網絡那個小菊花是否一直轉動,默認是NO,設置為YES後菊花一直轉動

                  5、@property(nonatomic) NSInteger applicationIconBadgeNumber; //設置應用圖標上的未讀數目,類似QQ上的未讀消息數目提醒

                  6、UIApplication是一個單例模式,整個app只有一個

                  7、canOpenUrl:(NSString*)url

                  此方法判斷能否打開一個url資源

                  openUrl:(NSString *)url

                  打開一個url資源,如果這個url是另外一個app的url,另外一個app將會啟動。url支持幾種類型:http,https,電話、視頻聊天、email

                  8、- (void)sendEvent:(UIEvent *)event

                  任何事件都可以在這裡被截獲

                  9、@property(nonatomic,readonly) NSArray *windows;跟keywindow

                  剛開始看了覺得很奇怪,不是說一個應用只有一個窗口嗎?干嘛還弄個數組,結果一測試才知道輸出來以後,除了window還有UITextEffetsWindow。網上查了keywindow是指當前活躍的window,與用戶交互的window。而windows是指當前app打開的所有window,比如鍵盤也在一個window裡面,alert也在一個window裡面。在windows數組裡面,window是根據windowLevel來排列的,最後一個覆蓋在最上面。這裡的windows數組不包括系統提供的window,比如說狀態欄就是在一個系統創建的window裡面

                  注意:keyWindow不是一成不變的,當你創建alertView或者ActionSheet的時候,它們所在的window會變成keyWindow。也就是說系統默認創建的window首先變成keywindow,而當彈框的時候,alertView所在的window變成keywindow,默認的keywindow變成非keywindow。

                   

                   

                   

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved