你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS UI編程_概述和程序的執行順序

iOS UI編程_概述和程序的執行順序

編輯:IOS開發綜合

一iOS概述 UI設計的條件設置 iOS系統架構層次 二程序的執行順序

一、iOS概述

iOS(最初,蘋果公司並沒有給隨iPhone發行的iOS一個獨立的稱謂,直到2008年3月6日才給它取名為iPhone OS,並於2010年6月改名為現在的名字iOS)是由蘋果公司為移動設備所開發的操作系統,支持的設備包括iPhone、iPod touch、iPad及Apple TV等。與Android及Windows Phone不同,iOS不支持非蘋果的硬件設備。2007年1月9日蘋果在Macworld大會中發布了iOS,並於同年6月29日發布了iOS的第一個版本。目前,iOS的最新版本為8.4(於2015年6月30日發布)。

UI設計的條件設置

盡管Apple為我們提供了諸多控件讓我們來布局應用,但並不是沒有任何原則,我們需要合理安排控件,做到用戶體驗最佳,以下是UI設計的條件限制:

顯示面積。盡可能少而緊湊的界面元素、足夠大的交互控件。 文件大小。有限的存儲空間,下載的時間以及流量費用,資源加載速度。 內存空間。程序運行空間小,內存管理優化,避免過高質量的圖片和音頻。 程序運行限制。一次只有一個前台程序,程序退出時間不得超過5秒。 數據訪問。不能使用別的APP中的靜態類庫,不能訪問沙盒以外的任何文件,也不能把沙盒文件共享出去。可以通過特定的API訪問一些系統資源,如圖片庫、地址簿等,在有網絡鏈接時,可以訪問網絡資源。 能量消耗。CPU負載、發熱、電池消耗快、算法優化。 用戶使用習慣。快速啟動、短暫使用,隨時可能退出,避免多余的幫助,自動保存。

iOS系統架構層次

iOS基於Mac OS X同樣的內核,iOS APP由如下圖所示的OS技術層次支撐起來。

  觸控應用層(the Cocoa Touch layer) 媒體層(the Media layer) 核心服務層(the Core Services layer) 核心操作系統層(the Core OS layer)

1. Core OS 和 Core Services 層提供了底層支持,包括文件訪問、網絡協議、低級數據類型等;它們是C基礎的接口,包括Core Foundation,CFNetwork,SQLite等API。
2. Media層提供了一些基本的繪圖、聲音和視頻技術的支持,包括基於C的OpenGL ES,Quartz,Core Audio以及基於Objective-C的Core Animation等。
3. Cocoa Touch層包括了大部分使用Objective-C的API主要由Foundation和UIKit兩個框架構成,Foundation提供了面向對象方式的文件訪問、網絡操作、數據、集合類型等。

在進行APP開發時,應當從上至下地使用這些技術層次,Cocoa Touch層為你提供了基本的系統行為支持,而且將你的工作量降到最低,當你想要實現更為復雜的行為和界面時,才考慮向下層探尋技術支持。


二、程序的執行順序

1.main.m是程序的?口。任何一個程序,?論是基於Mac OS X還是iOS,程序都是從main.m文件的main函數開始執?的。main函數只做三件事:創建一個自動釋放池,調用UIApplicationMain函數,以及使用自動釋放池。

int main(int argc, char * argv[]) {
    @autoreleasepool {
        // 執行UIApplicationMain函數時做了跳轉,轉到了AppDelete中
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    }
}

2.UIApplicationMain()創建應用程序對象,並且為此對象指定委托,監測程序的執行,同時開啟事件循環,處理程序接收到的事件。

3.UIApplicationDelegate方法的執行。應?程序代理,主要檢測應用程序的狀態並做出相應的處理。應用程序的狀態有很多,比如:程序啟動、進入活躍狀態、進到後台、內存警告、收到遠程消息等。任何接受了UIApplicationDelegate協議的對象都可以成為應用程序代理。一旦應?程序的某種狀態觸發,就會執行相應的代理?法。UIApplicationDelegate是一個objective-C的協議。?面聲明了很多方法,這些方法都與應用程序運行狀態有關,它們由應用程序代理實現。UIApplication對象負責調?。

4.加載window。UIWindow作為應用程序的窗口,在應用程序啟動的時候就要加載。各種UI界面都是借助window來呈現的。UIWindow在創建的時候,應該和屏幕?樣大。通過[UIScreen mainScreen].bounds可以獲得屏幕?小。[self.window makeKeyAndVisible]; //讓window變為可視狀態,即顯?window

5.指定根視圖控制器。


 

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