官术网_书友最值得收藏!

  • iPhone UIKit詳解
  • 王志剛 王中元 朱蕾編著
  • 1780字
  • 2019-01-01 07:04:18

本書導讀

0.1 關于本書

0.1.1 本書的目標

UIKit框架(Framework)不僅是iPhone SDK最基礎的部分,也是所有iPhone應用程序的基礎,本書專門介紹使用UIKit框架進行iPhone軟件開發的基礎知識。因此,書中關于Objective-C 2.0語言基礎以及Xcode使用方法的內容都省略了。

全書所有的章節都圍繞UIKit框架展開,盡量講解得具體、細致。如果在開發iPhone應用程序過程中碰到了如下疑問,相信你會從本書中找到滿意的答案。

  • UIKit到底是何種框架?包含了哪些功能?
  • 我想使用UISlider,到底該如何使用?
  • UIBarButton應如何初始化?
  • 我想讓iPhone程序畫面進行全屏顯示,該如何實現?
  • viewDidLoad方法的調用時機是什么時候?
  • 我大致知道這種類的用途,但是我想詳細了解一下它的功能。
  • API文檔中有這種屬性的介紹,但是到哪兒能找到具體的使用實例呢?

0.1.2 本書的特征

本書沒有介紹與Objective-C 2.0語言相關的知識,在閱讀本書前需要有一定的Objective-C 2.0語言基礎。下面是筆者撰寫的一本關于Objective-C 2.0語言基礎的書籍名稱及網站地址:《軟件創富密碼:iPhone應用程序開發之深入淺出Objective-C 2.0》,http://www.iacademe.net/item?ISBN=978-7-121-13469-2。有興趣的朋友可以先從這本書開始學習一些關于Objective-C 2.0語言的編程基礎。當然還可以參考其他關于Objective-C 2.0語言的書籍或者網上的相關專題介紹。

對于那些有一定iPhone應用程序開發經驗的朋友來說,可以放心地閱讀本書。它不僅可以幫助你鞏固iPhone應用程序開發的基礎、提供開發技能,還可以作為iPhone應用程序開發時的工具書來使用。UIKit框架中的類種類繁多,不可能一一記住,以筆者的經驗,開發時如果有一本如工具書一樣的參考書將會事半功倍。另外,本書以不使用Xcode的“所見即所得”界面編輯功能為前提(在Xcode 4以前版本中即不使用Interface Builder)進行解說。關于不使用界面編輯功能的開發方式在第1章中將有詳細介紹。

0.1.3 本書的章節組成

本書中包含的主要章節的基本介紹已經歸納于表0-1中。

表0-1 章節主要內容

0.2 關于實例代碼

0.2.1 實例代碼下載

本書中各章的實例代碼都可以從如下網站進行下載:http://www.softechallenger.com。其中,以zip壓縮文件形式供讀者下載。所有的這些實例代碼都遵循MIT License。讀者可以在自己的程序中自由使用、復制這些代碼,而且不論應用程序是私用或者是商用。但是其中的圖片并不遵循MIT License,除了供讀者運行實例程序外,禁止用于其他地方。

0.2.2 命名規則

為了節省篇幅,本書各章節中并沒有完整附上所有實例代碼,如經常省略接口定義(即@interface)部分的代碼。因此當閱讀時看到沒有定義的變量時,默認已經在@interface或者其他地方定義過了,此時可參考下載的實例代碼。

另外,本書在定義的實例變量名后附加下畫線,如instanceVariableName_。附加下畫線的目的是區分各方法中的本地變量。而且當書中沒有看到調用實例變量的release方法進行內存釋放時,默認在dealloc方法中已經進行了釋放處理。

最后,本書中所有用于演示功能的類名都以UIKitPrj開頭,如UIKitPrjAlpha.m。

0.2.3 初始化處理代碼

本書實例代碼中,多數是在UIViewController的viewDidLoad方法中完成對畫面各組成元素的初始化。實際開發中,關于此種初始化處理需要進行仔細考慮,不一定適合放在viewDidLoad方法中。因為通常viewDidLoad方法會被多次調用(可參考本書3.8節中的相關介紹),而且在實現了viewDidLoad方法后,往往需要考慮實現viewDidUnload方法,這兩個方法通常是一對集合。

但是,如果考慮上述因素后,結果會將初始化代碼變得更復雜,最終影響筆者對主要內容的解說。因此實例代碼中基本忽略了對這些因素的考慮,提供了一個最簡單的初始化處理過程。

0.2.4 實例代碼組織

本書實例代碼中,基本上是一個畫面用于驗證一個功能,因此很多時候是不需要導航條及工具條的。但是如果為每一個這樣的畫面都創建一個工程的話,這個工程的數量就會大大增加,代碼量也會大大增加。讀者可以看到,在下載的實例代碼中,我們使用了UINavigationController,一個應用程序工程中包含了多個實例。因此,往往會出現執行本書中列出的代碼時不顯示導航條與工具條,而執行下載的實例代碼時會顯示導航條與工具條的情況(如圖0-1所示)。

圖0-1 導航條與工具條的顯示差異

讀者不要在意這種差異,如果想顯示導航條與工具條時,可以在UIViewController的viewWillAppear:animated:方法中追加如下的代碼即可。

[self.navigationController setNavigationBarHidden:NO animated:YES];
[self.navigationController setToolBarHidden:NO animated:YES];

相反,如果想隱藏導航條與工具條時,可以執行如下代碼。

[self.navigationController setNavigationBarHidden:YES animated:YES];
[self.navigationController setToolBarHidden:YES animated:YES];

另外,一個應用程序工程中所有的實例都羅列于由UITableViewController創建的表格中,如圖0-2所示。單元格中顯示了各功能演示實例的類名稱(類名稱開頭的“UIKitPrj”被省略了),觸摸(在模擬器中“單擊”)單元后會進入各功能演示畫面中。關于如圖0-2所示畫面的實現原理(各工程中的類名稱都一樣為RootViewController)及相關代碼,讀者在學習了本書第7章后就會明白。在這之前讀者可先忽略對這部分代碼的研讀。

圖0-2 啟動畫面

主站蜘蛛池模板: 墨竹工卡县| 晋江市| 肃北| 介休市| 阿拉尔市| 芦溪县| 庆阳市| 库伦旗| 东方市| 贵德县| 长岭县| 东莞市| 鄂温| 大安市| 桦川县| 兴和县| 哈尔滨市| 松原市| 奈曼旗| 桃园县| 宝鸡市| 新化县| 天长市| 溧水县| 扎兰屯市| 香河县| 抚远县| 江口县| 淅川县| 河西区| 满洲里市| 威远县| 安庆市| 运城市| 华容县| 韩城市| 驻马店市| 新闻| 新蔡县| 筠连县| 偏关县|