瘋狂iOS講義(上)(第2版)——Objective-C 2.0與iPhone/iPad應用開發基礎 ( 簡體 字) |
作者:李剛 | 類別:1. -> 程式設計 -> 手機程式 -> iPhone |
譯者: |
出版社:電子工業出版社 | 3dWoo書號: 41074 詢問書籍請說出此書號!【有庫存】 NT售價: 495 元 |
出版日:4/1/2015 |
頁數:716 |
光碟數:1 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787121256134 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言:前 言
移動互聯網熱潮在全世界引起了巨大反響,移動互聯網正在改變著傳統互聯網的格局,全世界的IT公司爭相將業務重心向移動互聯網轉型,移動互聯網業務也成為業內最大的利潤增長點。 Apple公司的iOS系統作為與Android并駕齊驅的操作系統,具有非常完善的生態圈,而且用戶具有良好的付費習慣,吸引了大量的專業軟件和小團隊,甚至包括個人用戶。 Apple公司提供的App Store作為應用程序市場,它賦予了缺乏市場運作能力的第三方開發商和草根開發者新的商業機會:開發商和草根開發者只需專注于應用的開發,而市場和銷售則交給Apple公司管理。在這種模式下,即使小型團隊,甚至個人開發者也可以創造財富神話。 Apple公司在全世界IT行業是一個極富傳奇色彩的公司,它一度成為全球市值最大的IT公司,Apple公司的產品對于年輕人始終具有神奇的魔力,尤其是iPhone和iPad兩款廣為人知的產品,更是讓無數追求時尚的年輕人為之癡迷。目前Apple公司也在逐步推出iTV(基于iOS系統的智能電視)、iWatch(智能手表)等各種個人電子消費品,這些產品也吊足了時尚一族的胃口。Apple公司獨特的設計、市場運作方式、商業模式和公司經營管理理念,也是眾多IT公司競相研究、模仿的對象。 本書是《瘋狂iOS講義(上)》的第2版。本書真正基于最新的iOS 8.1,并采用最新的Xcode 6.1作為開發平臺,書中每個案例、每個截圖都是基于iOS 8.1的。并介紹了iOS 8.1新增的UIVisualEffectView控件,以及iOS 8.1增強的自動布局功能,并通過示例示范了如何利用Size Class和自動布局來開發自定義不同屏幕尺寸的iOS應用。 本書有什么特點 本書是一本介紹iOS應用開發的實用圖書,全面介紹了iOS 8.1平臺上應用開發各方面的知識。與市面上有些介紹iOS編程的圖書不同,本書并沒有花太多篇幅介紹Apple公司、iOS的發展歷史(因為這些內容到處都是),完全沒有介紹Apple Store(因為它只是一個交易網站,與iOS開發無關,但有些圖書甚至用整整一章來介紹它)。 本書只用了一章來介紹如何搭建iOS開發環境和Xcode工具的用法。本書內容大致可分為兩個部分: 第一部分詳細介紹了Objective-C這門看似冷門的編程語言——實際上,Objective-C現在非常熱門,Objective-C語言長期雄踞編程語言排行第3的位置(前兩名是Java、C)。本書介紹Objective-C基本語法、面向對象語法時沒有過多地使用IDE工具,而是帶領讀者使用最基本的文本編輯器學習編程,務必使讀者真正掌握Objective-C語法。 第二部分介紹了iOS開發的基礎,詳細介紹了iOS項目的結構、各文件的作用及其調用關系,并歸納了iOS應用的MVC設計,在代碼中獲取UI控件的3種方式(必須先獲取UI控件,然后即可修改它來更新用戶界面),iOS應用事件處理的3種方式,通過這種方式可以讓讀者快速掌握iOS編程的思路。第二部分的重點是iOS應用的UI界面開發和圖形、圖像處理——全書300多頁、近100個實例全面、系統地介紹了iOS的各種UI控件的功能、用法及其定制方法,并通過相應的實例程序給出了示范。 需要說明的是,本書只是一本介紹iOS應用開發的圖書,不是一本關于所謂“思想”的書,不要指望學習本書能提高你所謂的“iOS思想”,所以奉勸那些希望提高編程思想的讀者不要閱讀本書。 本書更不是一本看完之后可以“吹噓、炫耀”的書——因為本書并沒有堆砌一堆“深奧”的新名詞、一堆“高深”的思想,本書保持了“瘋狂體系”的一貫風格:操作步驟詳細,編程思路清晰,語言平實。只要讀者想學習iOS開發,無須擔心沒有Apple電腦(網絡上使用普通電腦裝黑蘋果的文章鋪天蓋地),無須擔心沒有iPhone(Xcode集成的模擬器在大部分場景下完全可以勝任開發)——即使讀者以前沒有編程基礎,只要有決心和毅力,閱讀本書也不會有任何問題(本書從最基本的Objective-C語法開始講起);只要你有決心和毅力,就可以掌握iOS應用開發。 認真看完本書、把書中所有示例都練習一遍,本書帶給你的只是9個字:“看得懂、學得會、做得出”。本書不能讓你認識一堆新名詞,只會讓你學會實際的iOS應用開發。本書最后綜合運用前面介紹的UI編程、繪圖等知識編寫了一個瘋狂連連看的小游戲,因此認真閱讀本書,掌握書中知識即可開發各種棋類、牌類、益智類的小游戲。 不管怎樣,只要讀者在閱讀本書時遇到知識上的問題,都可以登錄瘋狂Java聯盟(http://www.crazyit.org)與廣大學習者交流,筆者也會通過該平臺與大家一起交流、學習。 本書還具有如下幾個特點。 1.知識全面,覆蓋面廣 本書深入闡述了Objective-C的基本語法,包括類、對象、方法、成員變量、KVC、KVO、繼承和多態等面向對象的基礎知識,也包括類別(category)、擴展(extension)、協議與委托、內存管理與ARC等Objective-C的高級知識。本書詳細介紹了iOS全部圖形界面控件的功能和用法,事件處理機制,iOS圖形、圖像處理,內容全面而深入,覆蓋面非常廣。 2.內容實際,實用性強 本書并不局限于枯燥的理論介紹,而是采用了“項目驅動”的方式來講授知識點,全書有133個實例,幾乎每個知識點都可找到對應的參考實例。本書最后還提供了“瘋狂連連看”應用,具有極高的參考價值。 3.講解詳細,上手容易 本書保持了“瘋狂體系”的一貫風格:操作步驟詳細,編程思路清晰,語言平實。只要讀者有學習的決心和毅力,掌握本書內容就能打下扎實的iOS開發基礎,再通過本書下冊來掌握iOS開發的高級知識,即可完全勝任實際企業中iOS開發的要求。 本書寫給誰看 本書為所有打算深入掌握iOS編程的讀者而編寫,適合各種層次的iOS學習者和開發者閱讀,也適合作為大學教育、培訓機構的iOS教材。但如果只是想簡單涉獵iOS應用開發,則本書過于龐大,不適合閱讀。 2015-02-01 |
內容簡介:(含CD光盤1張)本書是《瘋狂iOS講義(上)》的第2版,本書基于最新的iOS 8.1、Xcode 6.1為平臺,全面介紹了iOS應用開發的基礎知識。書中每個案例、每個截圖都全面升級到iOS 8.1。本書全面、細致地介紹了Objective-C的面向對象語法、Foundation框架的核心類庫用法、文件 IO體系等知識,掌握Objective-C語言是iOS應用開發的基礎。本書將帶領讀者掌握iOS應用開發的基本理論以及iOS應用的MVC設計和事件處理編程,重點介紹了iOS界面編程、iOS應用的生命周期等內容。 |
目錄:第1章 iOS應用與開發環境 1 1.1 Objective-C與iOS簡介 2 1.1.1 Objective-C簡介 2 1.1.2 iOS簡介 3 1.2 搭建iOS開發環境 3 1.2.1 下載并安裝Xcode和SDK 4 1.2.2 安裝輔助工具和文檔 6 1.3 第一個Objective-C程序 7 1.3.1 使用文本編輯器開發Objective-C程序 7 1.3.2 使用Xcode工具開發Objective-C程序 9 1.4 熟悉Xcode 11 1.4.1 創建iOS項目 11 1.4.2 熟悉導航面板 13 1.4.3 熟悉檢查器面板 16 1.4.4 熟悉庫面板 17 1.4.5 使用Xcode的幫助系統 19 1.5 本章小結 22 第2章 數據類型和運算符 23 2.1 注釋 24 2.2 標識符和變量 25 2.2.1 分隔符 25 2.2.2 標識符規則 27 2.2.3 Objective-C關鍵字 27 2.3 數據類型分類 27 2.4 基本數據類型 28 2.4.1 整型 28 2.4.2 NSLog輸出函數及格式字符 29 2.4.3 字符型 31 2.4.4 浮點型 32 2.4.5 枚舉型 33 2.4.6 BOOL類型 35 2.5 類型轉換 36 2.5.1 自動類型轉換 36 2.5.2 強制類型轉換 38 2.5.3 表達式類型的自動提升 38 2.6 運算符 39 2.6.1 算術運算符 39 2.6.2 賦值運算符 42 2.6.3 位運算符 42 2.6.4 擴展后的賦值運算符 44 2.6.5 比較運算符 45 2.6.6 邏輯運算符 45 2.6.7 逗號運算符 46 2.6.8 三目運算符 46 2.6.9 運算符的結合性和優先級 47 2.7 本章小結 48 第3章 流程控制與數組 49 3.1 順序結構 50 3.2 分支結構 50 3.2.1 if條件語句 50 3.2.2 switch分支語句 54 3.3 循環結構 56 3.3.1 while循環語句 56 3.3.2 do while循環語句 58 3.3.3 for循環 59 3.3.4 嵌套循環 62 3.4 控制循環結構 63 3.4.1 使用break結束循環 63 3.4.2 使用continue結束本次循環 64 3.4.3 使用return結束函數 64 3.5 goto語句 65 3.6 數組 67 3.6.1 定義數組 67 3.6.2 數組的顯式初始化 68 3.6.3 使用數組 69 3.6.4 多維數組 70 3.6.5 多維數組的初始化 71 3.6.6 字符數組、字符串與結束標志 77 3.6.7 輸出字符串和字符串函數 78 3.6.8 數組的應用舉例 80 3.7 本章小結 81 第4章 C語言特性 82 4.1 函數 83 4.1.1 定義函數 83 4.1.2 函數聲明 86 4.1.3 函數的參數傳遞機制 87 4.1.4 遞歸函數 91 4.1.5 數組作為函數參數 92 4.1.6 內部函數與外部函數 96 4.2 局部變量與全局變量 97 4.2.1 局部變量 98 4.2.2 全局變量 99 4.2.3 外部全局變量與內部全局變量 100 4.2.4 動態存儲與靜態存儲 102 4.3 預處理 104 4.3.1 使用#define、#undef執行宏定義 105 4.3.2 帶參數的宏定義 106 4.3.3 使用#ifdef、#ifndef、#else、 #endif執行條件編譯 107 4.3.4 使用#if、#elif、#else、#endif執行條件編譯 109 4.3.5 #include與#import 110 4.4 指針 111 4.4.1 指針的概念 111 4.4.2 指針變量及其基本用法 113 4.4.3 指針變量作為函數參數 114 4.5 指針與數組 117 4.5.1 指向數組的指針變量 117 4.5.2 指針運算 117 4.5.3 數組變量作為函數參數 120 4.5.4 指向多維數組的指針變量 122 4.6 字符串與指針 124 4.6.1 使用字符指針表示字符串 124 4.6.2 字符指針作為函數參數 125 4.7 函數與指針 126 4.7.1 用函數指針變量調用函數 126 4.7.2 用函數指針變量作為函數參數 128 4.7.3 返回指針的函數 129 4.8 指針數組和指向指針變量的指針 130 4.8.1 指針數組與main()函數形參 131 4.8.2 指向指針變量的指針 133 4.9 結構體 134 4.9.1 定義結構體 134 4.9.2 typedef語句 136 4.9.3 初始化結構體變量 137 4.9.4 結構體數組 139 4.10 塊 139 4.10.1 塊的基本語法 140 4.10.2 塊與局部變量 141 4.10.3 直接使用塊作為參數 142 4.10.4 使用typedef定義塊類型 142 4.11 本章小結 144 第5章 面向對象(上) 145 5.1 類和對象 146 5.1.1 定義類 146 5.1.2 對象的產生和使用 150 5.1.3 對象和指針 152 5.1.4 self關鍵字 154 5.1.5 id類型 157 5.2 方法詳解 158 5.2.1 方法的所屬性 158 5.2.2 形參個數可變的方法 159 5.3 成員變量 160 5.3.1 成員變量及其運行機制 160 5.3.2 模擬類變量 163 5.3.3 單例(Singleton)模式 164 5.4 隱藏和封裝 165 5.4.1 理解封裝 165 5.4.2 使用訪問控制符 165 5.4.3 理解@package訪問控制符 169 5.4.4 合成存取方法 170 5.4.5 使用點語法訪問屬性 175 5.5 鍵值編碼(KVC)與鍵值監聽(KVO) 176 5.5.1 簡單的KVC 176 5.5.2 處理不存在的key 179 5.5.3 處理nil值 181 5.5.4 key路徑 182 5.5.5 鍵值監聽(KVO) 183 5.6 對象初始化 186 5.6.1 為對象分配空間 187 5.6.2 初始化方法與對象初始化 187 5.6.3 便利的初始化方法 189 5.7 類的繼承 191 5.7.1 繼承的特點 191 5.7.2 重寫父類的方法 193 5.7.3 super關鍵字 194 5.8 多態 197 5.8.1 多態性 197 5.8.2 指針變量的強制類型轉換 200 5.8.3 判斷指針變量的實際類型 201 5.9 本章小結 202 第6章 面向對象(下) 203 6.1 Objective-C的包裝類 204 6.1.1 它們不是包裝類 204 6.1.2 NSValue和NSNumber 205 6.2 處理對象 206 6.2.1 打印對象和description方法 206 6.2.2 ==和isEqual:方法 208 6.3 類別與擴展 212 6.3.1 類別(category) 213 6.3.2 利用類別對類進行模塊化設計 215 6.3.3 使用類別來調用私有方法 215 6.3.4 擴展(extension) 217 6.4 協議(protocol)與委托 219 6.4.1 規范、協議與接口 219 6.4.2 使用類別實現非正式協議 220 6.4.3 正式協議的定義 221 6.4.4 遵守(實現)協議 222 6.4.5 協議與委托(delegate) 225 6.5 使用@try處理異常 228 6.5.1 使用@try...@catch...@finally捕獲異常 229 6.5.2 訪問異常信息 231 6.5.3 使用@finally回收資源 232 6.5.4 拋出異常與自定義異常類 233 6.6 Objective-C反射機制 235 6.6.1 獲得Class 235 6.6.2 檢查繼承關系 236 6.6.3 動態調用方法 237 6.7 手動內存管理 240 6.7.1 對象的引用計數 242 6.7.2 對象所屬權 244 6.7.3 方法中的保留和釋放 247 6.7.4 使用自動釋放池 248 6.7.5 自動釋放池的銷毀時機與工作過程 250 6.7.6 臨時對象與事件循環中的自動釋放池 251 6.7.7 手動內存管理的規則總結 252 6.8 自動引用計數 253 6.8.1 自動引用計數概述 253 6.8.2 @autoreleasepool塊 254 6.9 本章小結 254 第7章 Foundation框架詳解 256 7.1 字符串(NSString與NSMutableString) 257 7.1.1 創建字符串 257 7.1.2 NSString的常用功能 258 7.1.3 可變字符串(NSMutableString) 259 7.2 日期與時間 260 7.2.1 日期與時間(NSDate) 261 7.2.2 日期格式器(NSDateFormatter) 262 7.2.3 日歷(NSCalendar)與日期組件(NSDateComponents) 264 7.2.4 定時器(NSTimer) 265 7.3 對象復制 267 7.3.1 copy與mutableCopy方法 267 7.3.2 NSCopying與NSMutableCopying協議 268 7.3.3 淺復制與深復制 270 7.3.4 setter方法的復制選項 272 7.4 Objective-C集合概述 273 7.5 數組(NSArray與NSMutableArray) 274 7.5.1 NSArray的功能與用法 274 7.5.2 對集合元素整體調用方法 279 7.5.3 對NSArray進行排序 280 7.5.4 使用枚舉器遍歷NSArray集合元素 282 7.5.5 快速枚舉(for-in) 283 7.5.6 可變數組(NSMutableArray) 283 7.5.7 NSArray的KVC與KVO 285 7.6 集合(NSSet與NSMutableSet) 286 7.6.1 NSSet的功能與用法 286 7.6.2 NSSet判斷集合元素重復的標準 289 7.6.3 NSMutableSet的功能與用法 292 7.6.4 NSCountedSet的功能與用法 293 7.7 有序集合(NSOrderedSet與NSMutableOrderedSet) 294 7.8 字典(NSDictionary與NSMutableDictionary) 296 7.8.1 NSDictionary的功能與用法 296 7.8.2 對NSDictionary的key排序 299 7.8.3 對NSDictionary的key進行過濾 301 7.8.4 使用自定義類作為NSDictionary的key 302 7.8.5 NSMutableDictionary的功能 與用法 304 7.9 謂詞 305 7.9.1 定義謂詞 305 7.9.2 使用謂詞過濾集合 306 7.9.3 在謂詞中使用占位符參數 308 7.9.4 謂詞表達式語法 309 7.10 本章小結 311 第8章 文件I/O 312 8.1 使用NSData與NSMutableData 313 8.2 使用NSFileManager管理文件和目錄 314 8.2.1 訪問文件屬性和內容 315 8.2.2 創建、刪除、移動、復制 316 8.2.3 查看目錄包含的內容 317 8.3 使用NSPathUtilities.h管理路徑 318 8.4 使用NSProcessInfo獲取進程信息 320 8.5 使用NSFileHandle處理文件IO 321 8.6 使用NSURL讀取網絡資源 324 8.7 使用NSBundle處理項目相關資源 325 8.8 對象歸檔 326 8.8.1 使用NSKeyedArchiver歸檔 326 8.8.2 實現NSCoding協議 328 8.8.3 使用NSData完成自定義歸檔 331 8.8.4 使用歸檔實現深復制 333 8.9 本章小結 334 第9章 iOS應用開發入門 335 9.1 從iOS項目開始 336 9.1.1 iOS項目包含的文件 336 9.1.2 Interface Builder簡介 337 9.1.3 添加控件 339 9.1.4 修改控件屬性 340 9.1.5 UIView支持的屬性 342 9.1.6 UILabel支持的屬性 344 9.2 MVC 346 9.2.1 程序入口 346 9.2.2 應用程序代理 347 9.2.3 理解iOS的MVC 349 9.2.4 掌握UIViewController控制器 350 9.3 事件機制 352 9.3.1 程序獲取控件的兩種方式 352 9.3.2 事件處理的三種方式 358 9.4 代碼控制UI界面 364 9.4.1 不使用界面設計文件開發 UI界面 364 實例:無界面設計文件開發iOS應用 364 9.4.2 使用代碼創建UI界面 366 實例:動態添加、刪除標簽 367 9.4.3 自定義UI控件 369 實例:跟隨手指運動的小球 369 9.5 美化iOS應用 372 9.5.1 定制iOS應用圖標 372 9.5.2 定制iOS應用的啟動畫面 373 9.6 本章小結 375 第10章 iOS應用的界面編程 335 10.1 UI控件概述 377 10.1.1 活動、靜態和被動控件 377 10.1.2 UIControl基類介紹 377 10.2 按鈕(UIButton) 379 實例:豐富多彩的按鈕 381 10.3 文本框控件(UITextField) 383 實例:用戶登錄界面 385 10.3.1 完成輸入后關閉鍵盤 386 10.3.2 觸碰背景關閉鍵盤 387 10.4 多行文本控件(UITextView) 389 10.4.1 UIScrollView支持的屬性 390 10.4.2 使用委托對象處理UITextView事件 392 實例1:通過導航按鈕關閉虛擬鍵盤 392 實例2:通過自定義鍵盤附件關閉虛擬鍵盤 394 10.4.3 自定義選擇內容后的菜單 396 10.5 開關按鈕(UISwitch) 397 實例:使用開關控制“手電筒” 398 10.6 分段控件(UISegmentedControl) 399 實例1:通過分段控件控制背景顏色 400 實例2:動態增加、刪除分段 401 10.7 圖像控件(UIImageView) 402 實例1:圖片瀏覽器 404 實例2:“幻燈片”播放器 406 10.8 進度條 407 10.8.1 UIProgressView 407 實例:定制進度條 409 10.8.2 UIActivityIndicatorView 410 10.9 拖動條(UISlider) 412 實例:通過拖動滑塊改變圖片透明度 413 10.10 警告框(UIAlertView)與UIActionSheet 415 10.10.1 UIAlertView的基本用法 415 10.10.2 帶輸入框的UIAlertView 417 10.10.3 使用UIActionSheet 419 10.11 日期選擇器(UIDatePicker) 421 實例:倒計時器 423 10.12 選擇器(UIPickerView) 425 10.12.1 單列選擇器 426 10.12.2 多列選擇器 427 10.12.3 相互依賴的多列選擇器 429 10.12.4 自定義選擇器視圖 432 實例:“老虎機”游戲 432 10.13 iOS 8新增的UIVisualEffectView 435 10.14 微調器(UIStepper) 438 10.15 網頁控件(UIWebView) 440 實例:迷你瀏覽器 442 10.16 工具條(UIToolBar) 444 實例:自定義工具條控件 446 10.17 表格(UITableView)與表格控制器(UITableViewController) 448 10.17.1 簡單表格 450 10.17.2 處理單元格的選中 454 實例:編輯選中行 454 10.17.3 定制表格行 459 實例1:繼承UITableViewCell定制表格行 459 實例2:使用動態單元格原型定制表格行 462 10.17.4 編輯表格 464 10.17.5 多分區表格以及分區索引 470 10.17.6 直接使用UITableViewController 472 10.17.7 靜態單元格 474 10.17.8 使用UIRefreshController刷新表格 477 10.18 搜索條(UISearchBar) 479 10.18.1 使用搜索條 480 10.18.2 使用UISearchDisplayController 483 實例:下拉列表顯示搜索結果 483 10.19 導航條(UINavigationBar)與導航控制器(UINavigationController) 487 10.19.1 使用導航條 487 10.19.2 使用UINavigationController 489 實例:查看、編輯圖書信息 491 10.19.3 使用segue控制過渡 497 10.19.4 使用segue控制導航 501 10.20 網格(UICollectionView)與網格控制器(UICollectionViewController) 505 10.20.1 UICollectionView的功能與用法 508 10.20.2 使用UICollectionViewDelegate-FlowLayout定制布局 512 實例:單元格大小不同的網格 513 10.20.3 擴展UICollectionViewLayout定制布局 514 實例:環形布局的UICollectionView 515 10.20.4 多分區網格 518 實例:帶頁眉、頁腳的多分區網格 519 10.20.5 直接使用UICollectionViewController 523 10.21 標簽條(UITabBar)與標簽頁控制器(UITabBarController) 526 10.21.1 使用UITabBar 527 10.21.2 使用UITabBarController 528 10.21.3 在Storyboard中使用UITabBarController 531 10.22 頁控件(UIPageControl)與頁控制器(UIPageViewController) 533 10.22.1 UIPageControl與UIScrollView結合使用 533 10.22.2 使用UIPageViewController 537 10.23 iPad應用開發 541 10.23.1 使用iPad專用控件:UISplitViewController 542 10.23.2 使用UIPopoverController實現浮動窗口 549 10.23.3 開發同時兼容iPhone與iPad的應用 551 10.24 本章小結 555 第11章 管理iOS應用的運行 556 11.1 iOS設備尺寸和自動旋轉機制 557 11.1.1 配置應用支持的方向 557 11.1.2 指定視圖控制器支持的方向 559 11.2 iOS 8增強的自動布局功能 560 11.2.1 自動布局的添加方式 560 11.2.2 使用自動布局適應不同尺寸的屏幕 566 11.2.3 使用Size Class適應屏幕旋轉 570 11.3 iOS應用的生命周期 574 11.3.1 應用程序的狀態 575 11.3.2 應用程序啟動過程 576 11.3.3 程序入口:main函數 578 11.3.4 響應中斷 578 11.3.5 進入后臺 580 11.3.6 返回前臺運行 581 11.3.7 應用程序終止 582 11.3.8 Main Run Loop 582 11.4 本章小結 583 第12章 圖形、圖像與動畫 584 12.1 使用UIImage和CGImage處理位圖 585 12.1.1 顯示動畫 585 實例:蝴蝶飛舞 587 12.1.2 CGImage與CGImageRef 588 12.2 Quartz 2D繪圖 588 12.2.1 Quartz 2D繪圖基礎:CGContextRef 588 12.2.2 繪制幾何圖形 591 12.2.3 點線模式 593 12.2.4 繪制文本 597 12.2.5 設置陰影 601 12.2.6 使用路徑 602 實例:繪制任意多角星 606 12.2.7 繪制曲線 607 實例:使用曲線繪制多瓣花朵 608 12.2.8 在內存中繪圖 609 實例:繪圖板 612 12.2.9 繪制位圖 617 實例:擴展UIImage的功能 617 12.3 圖形變換 622 12.3.1 使用坐標變換 622 12.3.2 坐標變換與路徑結合使用 623 實例:雪花飄飄 624 12.3.3 使用矩陣變換 625 12.4 控制疊加模式 628 12.5 處理填充 634 12.5.1 漸變填充 634 12.5.2 模式填充 639 12.6 使用Core Image濾鏡 644 12.7 動畫 652 12.7.1 Core Animation動畫基礎 652 12.7.2 使用CALayer 653 12.7.3 使用CATransition控制過渡動畫 656 12.7.4 使用屬性動畫 660 12.7.5 控制移動路徑 665 實例:繞圈游動的小魚 665 12.8 本章小結 667 第13章 瘋狂連連看 668 13.1 游戲簡介 669 13.2 開發游戲界面 670 13.2.1 開發界面布局 670 13.2.2 開發游戲界面控件 671 13.2.3 處理方塊之間的連接線 676 13.3 游戲的狀態數據模型 677 13.3.1 定義數據模型 677 13.3.2 初始化游戲狀態數據 678 13.4 加載界面的圖片 682 13.5 實現游戲視圖控制器 684 13.6 實現游戲邏輯 686 13.6.1 定義FKGameService的接口代碼 686 13.6.2 實現FKGameService 687 13.6.3 獲取觸碰點的方塊 688 13.6.4 判斷兩個方塊是否可以相連 689 13.6.5 定義獲取通道的工具方法 691 13.6.6 沒有轉折點的橫向連接 692 13.6.7 沒有轉折點的縱向連接 693 13.6.8 有一個轉折點的連接 693 13.6.9 有兩個轉折點的連接 696 13.6.10 找出最短距離 702 13.7 本章小結 704 |
序: |