內容簡介
本書共17章,從搭建開發環境開始,依次講解了搭建開發環境實戰,Objective-C語法實戰,Swift語法實戰,界面布局實戰,控制項套用實戰,螢幕顯示實戰,自動互動實戰,圖形、圖像和動畫實戰,多媒體套用實戰,網際網路套用實戰,地圖定位套用實戰,感測器、觸摸和互動實戰,硬體設備操作實戰,遊戲套用實戰,WatchOS 2開發實戰,開發框架實戰以及移動Web套用等知識。
本書適合iOS初學者、iOS愛好者、iOS開發人員學習,也可以作為相關培訓學校和大專院校相關專業的教學用書。
圖書目錄
第 1章 搭建開發環境實戰 1
1.1 下載並安裝Xcode 1
1.1.1 範例說明 1
1.1.2 具體實現 1
1.1.3 範例技巧—成為免費會員還是
付費會員 4
1.2 創建iOS 項目並啟動模擬器 4
1.2.1 範例說明 4
1.2.2 具體實現 5
1.2.3 範例技巧—Xcode里的模擬器到底
在哪裡 7
1.3 打開一個現有的iOS 項目 7
1.3.1 範例說明 7
1.3.2 具體實現 8
1.3.3 範例技巧—直接雙擊打開 8
1.4 Xcode基本面板介紹 8
1.4.1 範例說明 8
1.4.2 具體實現 8
1.4.3 範例技巧—使用斷點調試 11
1.5 通過搜尋框縮小檔案範圍 13
1.5.1 範例說明 13
1.5.2 具體實現 13
1.5.3 範例技巧—改變公司名稱 13
1.6 格式化代碼 14
1.6.1 範例說明 14
1.6.2 具體實現 14
1.6.3 範例技巧—代碼縮進和自動
完成 14
1.7 檔案內查找和替代 15
1.7.1 範例說明 15
1.7.2 具體實現 15
1.7.3 範例技巧—快速定位到代碼行 16
1.8 使用Xcode 7幫助系統 17
1.8.1 範例說明 17
1.8.2 具體實現 17
1.8.3 範例技巧—使用Xcode幫助 19
第 2章 Objective-C語法實戰 20
2.1 輸出一個整數 20
2.1.1 範例說明 20
2.1.2 具體實現 20
2.1.3 範例技巧—兩種特殊的格式 20
2.2 實現格式化輸出 21
2.2.1 範例說明 21
2.2.2 具體實現 21
2.2.3 範例技巧—還存在兩種特殊的
格式 21
2.3 使用%f和%e實現格式化輸出 21
2.3.1 範例說明 21
2.3.2 具體實現 22
2.3.3 範例技巧—類型double與類型float
類似 22
2.4 有效數字造成誤差 22
2.4.1 範例說明 22
2.4.2 具體實現 22
2.4.3 範例技巧—實型數據的分類 23
2.5 使用基本的Objective-C數據類型 23
2.5.1 範例說明 23
2.5.2 具體實現 24
2.5.3 範例技巧—char類型套用注意
事項 24
2.6 使用轉義字元 24
2.6.1 範例說明 24
2.6.2 具體實現 24
2.6.3 範例技巧—總結Objective-C常用的轉義字元 25
2.7 使用NSLog函式輸出不同的數據類型 25
2.7.1 範例說明 25
2.7.2 具體實現 26
2.7.3 範例技巧—NSLog函式的基本
功能 26
2.8 顯示變數值並計算結果 27
2.8.1 範例說明 27
2.8.2 具體實現 27
2.8.3 範例技巧—變數的使用訣竅 27
2.9 統一定義變數 28
2.9.1 範例說明 28
2.9.2 具體實現 28
2.9.3 範例技巧—Objective-C對變數命名的硬性規定 28
2.10 使用NSString輸出字元 28
2.10.1 範例說明 29
2.10.2 具體實現 29
的區別 29
2.11 實現四則運算 29
2.11.1 範例說明 29
2.11.2 具體實現 29
2.11.3 範例技巧—什麼是運算符的優
先級 30
2.12 使用整數運算符和一元負號運算符 30
2.12.1 範例說明 30
2.12.2 具體實現 30
2.12.3 範例技巧—代碼之美觀 31
2.13 使用Objective-C模運算符 31
2.13.1 範例說明 31
2.13.2 具體實現 31
2.13.3 範例技巧—注意模運算符的
優先權 32
2.14 整型值和浮點值的相互轉換 32
2.14.1 範例說明 32
2.14.2 具體實現 32
2.14.3 範例技巧—在編寫算術表達式時
要記住和整數運算的關係 33
2.15 使用條件運算符 33
2.15.1 範例說明 33
2.15.2 具體實現 33
2.15.3 範例技巧—用作if語句的一種縮寫形式 33
2.16.1 範例說明 34
2.16.2 具體實現 34
2.16.3 範例技巧—使用Objective-C關係
運算符 34
2.17.1 範例說明 35
2.17.2 具體實現 35
2.17.3 範例技巧—注意表達式類型的自動
提升機制 35
2.18 實現一個計算器 36
2.18.1 範例說明 36
2.18.2 具體實現 36
目的 37
2.19 使用位運算符 37
2.19.1 範例說明 37
2.19.2 具體實現 37
2.19.3 範例技巧—需要特別注意求反
運算符 38
2.20 使用頭檔案實現特殊數學運算 38
2.20.1 範例說明 38
2.20.2 具體實現 38
2.20.3 範例技巧—總結Objective-C的
運算符 39
2.21 使用邏輯運算符 40
2.21.1 範例說明 40
2.21.2 具體實現 40
2.21.3 範例技巧—
邏輯運算符的特殊說明和規律總結 41
2.22 顯示輸入數字的絕 對值 41
2.22.1 範例說明 41
2.22.2 具體實現 41
2.22.3 範例技巧—單分支if結構的
技巧 42
2.23 判斷是奇數還是偶數 42
2.23.1 範例說明 42
2.23.2 具體實現 42
2.23.3 範例技巧—if-else是if語句一般格式的一種擴展形式 43
2.24 判斷是否是閏年 43
2.24.1 範例說明 43
2.24.2 具體實現 43
2.24.3 範例技巧—複合運算符的作用 44
2.25 判斷輸入字元的類型 44
2.25.1 範例說明 44
2.25.2 具體實現 44
2.25.3 範例技巧—“Enter”鍵的作用 45
2.26 使用switch計算輸入表達式的值 45
2.26.1 範例說明 45
2.26.2 具體實現 45
2.26.3 範例技巧—Objective-C與C語言的區別 46
2.27 計算第 200個三角形數 46
2.27.1 範例說明 46
2.27.2 具體實現 46
2.27.3 範例技巧—掌握for語句的語法
格式 47
2.28 計算三角形數 47
2.28.1 範例說明 47
2.28.2 具體實現 47
2.28.3 範例技巧—注意界限問題 48
2.29 輸出從1到5的整數 48
2.29.1 範例說明 48
2.29.2 具體實現 48
2.29.3 範例技巧—for語句和while語句的等價轉換 48
2.30 顯示輸入數的各個位的值 49
2.30.1 範例說明 49
2.30.2 具體實現 49
2.30.3 範例技巧—使用do語句進行
替換 50
2.31 計算圓的周長和面積 50
2.31.1 範例說明 50
2.31.2 具體實現 50
2.31.3 範例技巧—另外一種計算圓的周長和面積的方法 51
2.32 判斷用戶輸入月份的天數 51
2.32.1 範例說明 51
2.32.2 具體實現 51
2.32.3 範例技巧—儘量把枚舉值當作獨立的數據類型來對待 52
2.33 生成一個素數表 53
2.33.1 範例說明 53
2.33.2 具體實現 53
2.33.3 範例技巧—類Foundation為使用數組提供了便利 54
2.34 使用方法copy實現複製 54
2.34.1 範例說明 54
2.34.2 具體實現 54
2.34.3 範例技巧—複製操作時的記憶體
問題 55
2.35 生成斐波納契數的前15個值 55
2.35.1 範例說明 55
2.35.2 具體實現 55
2.35.3 範例技巧—必須在定義數組後才能使用下標變數 56
2.36 通過數組模擬五子棋套用 56
2.36.1 範例說明 56
2.36.2 具體實現 56
2.36.3 範例技巧—字元數組的作用 57
2.37 計算三角形數 58
2.37.1 範例說明 58
2.37.2 具體實現 58
2.37.3 範例技巧—方法是函式,訊息表達式是函式調用 58
2.38 使用頭檔案實現特殊數學運算 58
2.38.1 範例說明 58
2.38.2 具體實現 59
2.38.3 範例技巧—可以省略返回整數的函式返回類型聲明嗎 59
2.39 通過函式遞歸計算fn(10)的值 59
2.39.1 範例說明 59
2.39.2 具體實現 59
2.39.3 範例技巧—函式遞歸調用的兩個
要素 60
2.40 將數組作為函式的參數 60
2.40.1 範例說明 60
2.40.2 具體實現 60
2.41 實現冒泡排序 62
2.41.1 範例說明 62
2.41.2 具體實現 62
2.41.3 範例技巧—冒泡排序算法的運作
過程 62
2.42 統計數組數據最大值、**小值、平均值和
總和 63
2.42.1 範例說明 63
2.42.2 具體實現 63
2.42.3 範例技巧—局部變數的作用域的
注意事項 64
2.43.1 範例說明 64
2.43.2 具體實現 64
2.43.3 範例技巧—靜態存儲變數的
生存期 64
2.44 顯示當前的日期 65
2.44.1 範例說明 65
2.44.2 具體實現 65
2.44.3 範例技巧—基本數據類型成員變數的初始化預設值 65
2.45 確定今 天是不是一個月最後一 天 66
2.45.1 範例說明 66
2.45.2 具體實現 66
2.45.3 範例技巧—必須導入檔案Foundation.h 67
2.46 使用指針遍歷數組元素 68
2.46.1 範例說明 68
2.46.2 具體實現 68
2.46.3 範例技巧—使用簡化方式遍歷
數組 68
2.47 對數組元素進行快速排序 69
2.47.1 範例說明 69
2.47.2 具體實現 69
2.47.3 範例技巧—指針和數組的關係 70
2.48 計算整型數組所包含元素的和 70
2.48.1 範例說明 70
2.48.2 具體實現 70
2.48.3 範例技巧—數組還是指針的
選擇 71
2.49 將字元串按照從小到大的順序進行排序 71
2.49.1 範例說明 71
2.49.2 具體實現 71
2.49.3 範例技巧—使用字元串指針變數與字元數組的區別 72
2.50 計算最大值和平均值 73
2.50.1 範例說明 73
2.50.2 具體實現 73
2.50.3 範例技巧—把函式地址賦值給函式指針的兩種形式 74
2.51 分別計算數組元素的平方和立方值 74
2.51.1 範例說明 74
2.51.2 具體實現 74
2.51.3 範例技巧—通過函式交換
數值 75
第3章 Swift語法實戰 76
3.1 定義並輸出常量的值 76
3.1.1 範例說明 76
3.1.2 具體實現 76
3.1.3 範例技巧—Swift的編程風格 76
3.2 定義指定類型的變數 77
3.2.1 範例說明 77
3.2.2 具體實現 77
3.2.3 範例技巧—被稱為動態語言的
原因 77
3.3 計算一個圓的面積 77
3.3.1 範例說明 77
3.3.2 具體實現 78
3.3.3 範例技巧—占位符的用法 78
3.4 添加單行注釋和多行注釋 78
3.4.1 範例說明 78
3.4.2 具體實現 78
3.4.3 範例技巧—使用注釋時的
注意事項 78
3.5 輸出大整數值 79
3.5.1 範例說明 79
3.5.2 具體實現 79
3.5.3 範例技巧—建議讀者儘量不要使用UInt 79
3.6 使用浮點數 79
3.6.1 範例說明 80
3.6.2 具體實現 80
3.6.3 範例技巧—浮點數的精度 80
3.7 輸出不同進制的數字17 80
3.7.1 範例說明 80
3.7.2 具體實現 81
3.7.3 範例技巧—使用整型字面量的
規則 81
3.8 實現整型轉換 81
3.8.1 範例說明 81
3.8.2 具體實現 81
3.8.3 範例技巧—顯式指定長度類型的
意義 82
3.9.1 範例說明 82
3.9.2 具體實現 83
3.9.3 範例技巧—與 C和 Objective-C 的
不同 83
3.10 實現複雜的數學運算 83
3.10.1 範例說明 83
3.10.2 具體實現 83
3.10.3 範例技巧—Swift語言的雙目
運算符 84
3.1 1 使用頭檔案實現特殊數學運算 84
3.11.1 範例說明 84
3.11.2 具體實現 84
3.11.3 範例技巧—恆等“==”和不恆等“!==” 85
3.12.1 範例說明 85
3.12.2 具體實現 85
3.12.3 範例技巧—避免在一個組合語句中使用多個三元條件運算符 86
3.1 3 使用閉範圍運算符 86
3.13.1 範例說明 86
3.13.2 具體實現 86
3.13.3 範例技巧—使用半閉區間
運算符 86
3.1 4 使用括弧設定運算優先權 87
3.14.1 範例說明 87
3.14.2 具體實現 87
3.14.3 範例技巧—建議在可以讓代碼變清晰的地方加一個括弧 87
3.15.1 範例說明 87
3.15.2 具體實現 88
3.15.3 範例技巧—
左移運算符和右移運算符的實質 88
3.1 6 使用溢出運算符 88
3.16.1 範例說明 88
3.16.2 具體實現 89
3.16.3 範例技巧—實現值的上溢 89
3.17 演示運算符的優先權和結合性 90
3.17.1 範例說明 90
3.17.2 具體實現 90
3.17.3 範例技巧—總結Swift語言運算符的優先權 90
3.18 使用字元型變數 91
3.18.1 範例說明 91
3.18.2 具體實現 91
3.18.3 範例技巧—string與 Foundation
NSString的無縫橋接 92
3.19 判斷字元串是否為空 92
3.19.1 範例說明 92
3.19.2 具體實現 92
3.19.3 範例技巧—初始化空字元串 92
3.20 追加字元串的內容 92
3.20.1 範例說明 92
3.20.2 具體實現 93
3.20.3 範例技巧—設定字元串是否可以被修改的方法 93
3.21 獲取字元串的字元數量 93
3.21.1 範例說明 93
3.21.2 具體實現 93
3.21.3 範例技巧—定占用相同記憶體空間的問題 94
3.22 驗證字元串是否相等 94
3.22.1 範例說明 94
3.22.2 具體實現 94
3.22.3 範例技巧—字元串相等和前綴/後綴相等 94
3.23 聲明數組變數 95
3.23.1 範例說明 95
3.23.2 具體實現 95
3.23.3 範例技巧—推薦用較短的方式聲明數組 95
3.24 向數組中添加元素 96
3.24.1 範例說明 96
3.24.2 具體實現 96
3.24.3 範例技巧—不能使用下標語法在數組尾部添加新項 96
3.25 一道數組面試題 96
3.25.1 範例說明 96
3.25.2 具體實現 97
3.25.3 範例技巧—創建並構造一個
數組 98
3.26 聲明字典變數 98
3.26.1 範例說明 98
3.26.2 具體實現 98
3.26.3 範例技巧—字典的深層意義 99
3.27 遍歷字典中的數據 99
3.27.1 範例說明 100
3.27.2 具體實現 100
3.27.3 範例技巧—使用for-in循環遍歷字典數據 100
3.28 使用字典統計字元的出現次數 100
3.28.1 範例說明 101
3.28.2 具體實現 101
3.28.3 範例技巧—字典和數組的複製是
不同的 101
3.29 使用for語句遍歷數組 102
3.29.1 範例說明 102
3.29.2 具體實現 102
3.29.3 範例技巧—for語句的執行
流程 102
3.30 使用if語句判斷年齡 103
3.30.1 範例說明 103
3.30.2 具體實現 103
3.30.3 範例技巧—if語句的兩種標準
形式 103
3.31 使用switch語句判斷成績 103
3.31.1 範例說明 103
3.31.2 具體實現 104
3.31.3 範例技巧—分支switch {case:...}語句的特點 104
3.32 計算指定整數的階乘 104
3.32.1 範例說明 104
3.32.2 具體實現 105
3.32.3 範例技巧—使用for循環代替while循環 105
3.33 while循環中的死循環 105
3.33.1 範例說明 105
3.33.2 具體實現 105
3.33.3 範例技巧—實現循環語句的
嵌套 106
3.34 使用頭檔案實現特殊數學運算 106
3.34.1 範例說明 106
3.34.2 具體實現 106
3.34.3 範例技巧—允許多個case匹配同一個值 107
3.35 通過函式比較兩個數的大小 107
3.35.1 範例說明 107
3.35.2 具體實現 107
3.35.3 範例技巧—3種調用函式的
方式 107
3.36 使用函式改變引用變數本身 108
3.36.1 範例說明 108
3.36.2 具體實現 108
3.36.3 範例技巧—傳遞輸入輸出參數值時的注意事項 109
3.37 在函式中定義函式類型的形參 109
3.37.1 範例說明 109
3.37.2 具體實現 109
3.37.3 範例技巧—將函式類型作為另一個函式的返回類型 110
3.38 使用嵌套函式 110
3.38.1 範例說明 110
3.38.2 具體實現 111
3.38.3 範例技巧—在函式中定義
函式 111
3.39 使用遞歸解決一道數學題 112
3.39.1 範例說明 112
3.39.2 具體實現 112
3.39.3 範例技巧—Swift中的內置
函式 112
3.40 調用閉包 112
3.40.1 範例說明 112
3.40.2 具體實現 113
3.40.3 範例技巧—閉包的最佳化目標 113
3.41 捕獲上下文中的變數和常量 113
3.41.1 範例說明 113
3.41.2 具體實現 113
3.41.3 範例技巧—尾隨閉包的作用 114
3.42 使用case定義多個枚舉 114
3.42.1 範例說明 114
3.42.2 具體實現 114
3.42.3 範例技巧—為枚舉定義原始值 115
3.43 使用可選鏈代替強制解析 116
3.43.1 範例說明 116
3.43.2 具體實現 116
3.43.3 範例技巧—如何選擇類型 117
3.44 測試釋放的時間點 118
3.44.1 範例說明 118
3.44.2 具體實現 118
3.44.3 範例技巧—弱引用的作用 119
3.45 使用類型約束實現冒泡排序算法 119
3.45.1 範例說明 119
3.45.2 具體實現 119
3.45.3 範例技巧—定義冒泡排序函式 120
3.46 使用關聯類型 121
3.46.1 範例說明 121
3.46.2 具體實現 121
3.46.3 範例技巧—Array的3個功能 122
第4章 界面布局實戰 123
4.1 將Xcode界面連線到代碼 123
4.1.1 範例說明 123
4.1.2 具體實現 123
4.1.3 範例技巧—Interface Builder可以
提高開發效率 128
4.2 純代碼方式實現UI 128
4.2.1 範例說明 128
4.2.2 具體實現 128
4.2.3 範例技巧—什麼情況下使用IB進行
開發 129
4.3 使用模板Single View Application 130
4.3.1 範例說明 130
4.3.2 具體實現 130
4.3.3 範例技巧—Xcode中的MVC 140
4.4 使用頭檔案實現特殊數學運算 140
4.4.1 範例說明 140
4.4.2 具體實現 140
4.4.3 範例技巧—頭檔案中的常用函式 142
4.5 拆分表視圖 142
4.5.1 範例說明 142
4.5.2 具體實現 142
4.5.3 範例技巧—表視圖的外觀 143
4.6 自定義一個UITableViewCell 143
4.6.1 範例說明 144
4.6.2 具體實現 144
4.6.3 範例技巧—什麼是表單元格 147
4.7 實現一個圖文樣式聯繫人列表效果 148
4.7.1 範例說明 148
4.7.2 具體實現 148
4.7.3 範例技巧—在配置表視圖時必須設定標識符 148
4.8 在表視圖中動態操作單元格(Swift版) 148
4.8.1 範例說明 148
4.8.2 具體實現 149
4.8.3 範例技巧—表視圖數據源協定 150
4.9 給四條框線加上陰影 151
4.9.1 範例說明 151
4.9.2 具體實現 151
4.9.3 範例技巧—UITableView的屬性 151
4.10 給UIView加上各種圓角、框線效果 152
4.10.1 範例說明 152
4.10.2 具體實現 152
4.10.3 範例技巧—UIView在MVC中的重要作用 152
4.11 實現彈出式動畫表單效果 153
4.11.1 範例說明 153
4.11.2 具體實現 153
4.11.3 範例技巧—UIView的本質 154
4.12 創建一個滾動圖片瀏覽器(Swift版) 154
4.12.1 範例說明 154
4.12.2 具體實現 154
4.12.3 範例技巧—UIView中的
CALayer 155
4.13 實現可以移動切換的視圖效果 155
4.13.1 範例說明 155
4.13.2 具體實現 155
4.13.3 範例技巧—iOS程式的視圖
架構 158
4.14 實現手動旋轉螢幕的效果 159
4.14.1 範例說明 159
4.14.2 具體實現 159
4.14.3 範例技巧—視圖層次和子視圖
管理 160
4.15 實現會員登錄系統(Swift版) 160
4.15.1 範例說明 160
4.15.2 具體實現 160
4.15.3 範例技巧—UIViewController的
屬性 161
4.16 使用導航控制器展現3個場景 162
4.16.1 範例說明 162
4.16.2 具體實現 162
4.16.3 範例技巧—UINavigationController的作用 163
4.17 實現一個界面導航條功能 163
4.17.1 範例說明 163
4.17.2 具體實現 163
4.17.3 範例技巧—導航欄、導航項和欄
按鈕項 165
4.18 創建主從關係的“主-子”視圖
(Swift版) 166
4.18.1 範例說明 166
4.18.2 具體實現 166
4.18.3 範例技巧—深入理解navigationItem的作用 167
4.19 使用選項卡欄控制器構建3個場景 167
4.19.1 範例說明 167
4.19.2 具體實現 167
4.19.3 範例技巧—UITabBarController推入和推出視圖的方式 168
4.20 使用動態單元格定製表格行 168
4.20.1 範例說明 168
4.20.2 具體實現 168
4.20.3 範例技巧—選項卡欄和選項卡
欄項 169
4.21 開發一個界面選擇控制器(Swift版) 169
4.21.1 範例說明 169
4.21.2 具體實現 169
4.21.3 範例技巧—添加選項卡欄控制器的方法 170
4.22 使用第 二個視圖來編輯第 一個視圖中的
信息 171
4.22.1 範例說明 171
4.22.2 具體實現 171
4.22.3 範例技巧—多場景應用程式的常用術語 175
4.23 實現多個視圖之間的切換 175
4.23.1 範例說明 176
4.23.2 具體實現 176
4.23.3 範例技巧—實現多場景功能的方法是在故事板檔案中創建多個場景 179
4.24 實現多場景視圖數據傳輸(Swift版) 179
4.24.1 範例說明 180
4.24.2 具體實現 180
4.24.3 範例技巧—初步理解手勢識別的
作用 181
4.25 使用Segue實現過渡效果 181
4.25.1 範例說明 181
4.25.2 具體實現 181
4.25.3 範例技巧—隱藏指定的UIView
區域的方法 182
4.26 為Interface Builder設定自定義類
(Swift版) 182
4.26.1 範例說明 182
4.26.2 具體實現 182
4.26.3 範例技巧—IB和純代碼聯合編碼的好處 183
4.27 在同一個工程中創建多個分類
(Swift版) 183
4.27.1 範例說明 183
4.27.2 具體實現 183
4.27.3 範例技巧—MVC中對控制器對象的理解 184
4.28 創建一個自定義的UIView視圖
(Swift版) 185
4.28.1 範例說明 185
4.28.2 具體實現 185
4.28.3 範例技巧—定位螢幕中的圖片的
方法 186
4.29 動態控制螢幕中動畫的顏色
(Swift版) 186
4.29.1 範例說明 186
4.29.2 具體實現 186
4.29.3 範例技巧—視圖繪製周期 187
4.30 實現多視圖導航界面系統(Swift版) 187
4.30.1 範例說明 187
4.30.2 具體實現 188
4.30.3 範例技巧—實現背景透明 188
4.31 實現一個會員登錄系統(Swift版) 188
4.31.1 範例說明 188
4.31.2 具體實現 188
4.31.3 範例技巧—旋轉和縮放視圖的
方法 190
4.32 創建一個App軟體管理系統
(Swift版) 190
4.32.1 範例說明 190
4.32.2 具體實現 190
4.32.3 範例技巧—UIActivityIndicatorView的系統樣式 192
4.33 創建一個圖片瀏覽系統(Swift版) 192
4.33.1 範例說明 192
4.33.2 具體實現 192
4.33.3 範例技巧—UITableView的主要
作用 194
4.34 創建多界面視圖(Swift版) 194
4.34.1 範例說明 194
4.34.2 具體實現 194
4.34.3 範例技巧—UITableView的初始化方法 195
4.35 聯合使用UITabbarController和UIWebView
(Swift版) 195
4.35.1 範例說明 195
4.35.2 具體實現 195
4.35.3 範例技巧—UITableView的委託
方法 196
第5章 控制項套用實戰 198
5.1 控制是否顯示TextField中的密碼明文
信息 198
5.1.1 範例說明 198
5.1.2 具體實現 198
5.1.3 範例技巧—文本框的功能 199
5.2 對輸入內容的長度進行驗證 199
5.2.1 範例說明 199
5.2.2 具體實現 199
5.2.3 範例技巧—ViewController.m的
功能 200
5.3 實現用戶登錄框界面 200
5.3.1 範例說明 200
5.3.2 具體實現 200
5.3.3 範例技巧—控制項UITextField的常用屬性 201
5.4 震動UITextField控制項(Swift版) 201
5.4.1 範例說明 201
5.4.2 具體實現 201
5.4.3 範例技巧—改變TextField背景
圖片 202
5.5 動態輸入的文本 202
5.5.1 範例說明 202
5.5.2 具體實現 202
5.5.3 範例技巧—什麼是文本視圖(UITextView) 203
5.6 自定義文字的行間距 203
5.6.1 範例說明 203
5.6.2 具體實現 203
5.6.3 範例技巧—Text Field部分的具體
說明 204
5.7 自定義UITextView控制項的樣式 205
5.7.1 範例說明 205
5.7.2 具體實現 205
5.7.3 範例技巧—Captitalization的
作用 206
5.8 在指定的區域中輸入文本(Swift版) 206
5.8.1 範例說明 206
5.8.2 具體實現 206
5.8.3 範例技巧—3個重要的鍵盤屬性 207
5.9 使用UILabel顯示一段文本 207
5.9.1 範例說明 207
5.9.2 具體實現 207
5.9.3 範例技巧—標籤(UILabel)的
作用 208
5.10 為文字分別添加上劃線、下劃線和
中劃線 209
5.10.1 範例說明 209
5.10.2 具體實現 209
5.10.3 範例技巧—標籤(UILabel)的常用屬性 209
5.11 顯示被觸摸單詞的字母 210
5.11.1 範例說明 210
5.11.2 具體實現 210
5.11.3 範例技巧—截取文本操作 211
5.12 輸出一個指定樣式的文本(Swift版) 211
5.12.1 範例說明 211
5.12.2 具體實現 211
5.12.3 範例技巧—讓UILabel的文字頂部對齊 212
5.13 自定義設定按鈕的圖案(Swift版) 212
5.13.1 範例說明 212
5.13.2 具體實現 212
5.13.3 範例技巧—按鈕(UIButton)的
作用 214
5.14 實現一個變換形狀的動畫按鈕 215
5.14.1 範例說明 215
5.14.2 具體實現 215
5.14.3 範例技巧—按鈕的外觀風格 216
5.15 聯合使用文本框、文本視圖和按鈕 216
5.15.1 範例說明 216
5.15.2 具體實現 216
5.15.3 範例技巧—設定成不同的背景
顏色 217
5.16 自定義一個按鈕(Swift版) 218
5.16.1 範例說明 218
5.16.2 具體實現 218
5.16.3 範例技巧—何時釋放release UIButton 219
5.17 使用素材圖片實現滑動條特效 219
5.17.1 範例說明 219
5.17.2 具體實現 219
5.17.3 範例技巧—滑塊(UISlider)
介紹 220
5.18 實現一個自動顯示刻度記號的滑動條 221
5.18.1 範例說明 221
5.18.2 具體實現 221
5.18.3 範例技巧—滑塊的作用 222
5.19 在螢幕中實現各種各樣的滑塊 222
5.19.1 範例說明 222
5.19.2 具體實現 223
5.19.3 範例技巧—UISlider控制項的常用
屬性 223
5.20 自定義實現UISlider控制項功能
(Swift版) 223
5.20.1 範例說明 223
5.20.2 具體實現 223
5.20.3 範例技巧—設定滑塊的範圍與
默認值 224
5.21 自定義步進控制項的樣式 224
5.21.1 範例說明 224
5.21.2 具體實現 224
5.21.3 範例技巧—IStepper的屬性 225
5.22 設定指定樣式的步進控制項 225
5.22.1 範例說明 225
5.22.2 具體實現 225
5.22.3 範例技巧—UIStepper的控制
屬性 226
5.23 使用步進控制項自動增減數字
(Swift版) 226
5.23.1 範例說明 226
5.23.2 具體實現 227
5.23.3 範例技巧—UIStepper控制項的一個有趣特性 227
5.24 限制輸入文本的長度 227
5.24.1 範例說明 227
5.24.2 具體實現 228
5.24.3 範例技巧—複製檔案到測試
工程中 228
5.25 關閉虛擬鍵盤的輸入動作 228
5.25.1 範例說明 228
5.25.2 具體實現 228
5.25.3 範例技巧—接口檔案的實現 229
5.26 複製UILabel中的文本內容 229
5.26.1 範例說明 229
5.26.2 具體實現 229
5.26.3 範例技巧—核心檔案的具體
實現 231
5.27 實現豐富多彩的控制按鈕 231
5.27.1 範例說明 231
5.27.2 具體實現 231
5.27.3 範例技巧—創建按鈕的通用
方法 231
5.28 顯示對應的刻度 232
5.28.1 範例說明 232
5.28.2 具體實現 232
5.28.3 範例技巧—按鈕控制項中的常用
事件 233
5.29 在螢幕中輸入文本(Swift版) 234
5.29.1 範例說明 234
5.29.2 具體實現 234
5.29.3 範例技巧—UITextField的按鈕
樣式 235
5.30 驗證輸入的文本(Swift版) 235
5.30.1 範例說明 236
5.30.2 具體實現 236
5.30.3 範例技巧—重寫UITextField的繪製行為 237
5.31 實現一個文本編輯器(Swift版) 237
5.31.1 範例說明 237
5.31.2 具體實現 237
5.31.3 範例技巧—UITextView退出鍵盤的幾種方式 238
5.32 在螢幕中輸入可編輯文本
(Swift版) 238
5.32.1 範例說明 238
5.32.2 具體實現 238
5.32.3 範例技巧—為UITextView設定圓角效果 240
5.33 實現圖文樣式的按鈕(Swift版) 240
5.33.1 範例說明 240
5.33.2 具體實現 241
5.33.3 範例技巧—通過按鈕的事件來設定背景色 241
5.34 在UILabel中顯示圖示(Swift版) 241
5.34.1 範例說明 241
5.34.2 具體實現 242
5.34.3 範例技巧—創建指定大小的系統默認字型(默認:Helvetica) 242
5.35 自定義按鈕的樣式(Swift版) 243
5.35.1 範例說明 243
5.35.2 具體實現 243
5.35.3 範例技巧—獲取可用的字型名
數組 243
5.36 自定義設定一個指定的按鈕樣式
(Swift版) 243
5.36.1 範例說明 244
5.36.2 具體實現 244
5.36.3 範例技巧—UIButton控制項中的addSubview問題 245
5.37 實現縱向樣式的滑塊效果(Swift版) 245
5.37.1 範例說明 245
5.37.2 具體實現 246
5.37.3 範例技巧—滑塊控制項的通知
問題 246
5.38 實現滑塊和進度條效果(Swift版) 247
5.38.1 範例說明 247
5.38.2 具體實現 247
5.38.3 範例技巧—UISlider的本質 247
5.39 使用步進控制項瀏覽圖片(Swift版) 248
5.39.1 範例說明 248
5.39.2 具體實現 248
5.39.3 範例技巧—設定步進控制項的
顏色 248
5.40 使用步進控制項顯示數值(Swift版) 248
5.40.1 範例說明 248
5.40.2 具體實現 249
5.40.3 範例技巧—Swift步進控制項的通用
用法 249
第6章 螢幕顯示實戰 250
6.1 改變UISwitch的文本和顏色 250
6.1.1 範例說明 250
6.1.2 具體實現 250
6.1.3 範例技巧—不要在設備螢幕上顯示出乎用戶意料的控制項 252
6.2 在螢幕中顯示具有開關狀態的開關 252
6.2.1 範例說明 252
6.2.2 具體實現 252
6.2.3 範例技巧—總結開關控制項的基本
用法 253
6.3 控制是否顯示密碼明文(Swift版) 253
6.3.1 範例說明 253
6.3.2 具體實現 254
6.3.3 範例技巧—單獨編寫類檔案DKTextField.swift的原因 255
6.4 在螢幕中使用UISegmentedControl控制項 255
6.4.1 範例說明 255
6.4.2 具體實現 255
6.4.3 範例技巧—解決分段控制項導致內容變化的問題 256
6.5 添加圖示和文本 256
6.5.1 範例說明 257
6.5.2 具體實現 257
6.5.3 範例技巧—分段控制項的屬性和
方法 257
6.6 使用分段控制項控制背景顏色 258
6.6.1 範例說明 258
6.6.2 具體實現 259
6.6.3 範例技巧—要獲取分段控制項中當前選定按鈕的標題 259
6.7 自定義UISegmentedControl控制項的樣式
(Swift版) 260
6.7.1 範例說明 260
6.7.2 具體實現 260
6.7.3 範例技巧—UISegmentedControl的常用方法 260
6.8 實現一個自定義提醒對話框 260
6.8.1 範例說明 261
6.8.2 具體實現 261
6.8.3 範例技巧—設定標籤之間分割線的圖案 261
6.9 實現振動提醒框效果 262
6.9.1 範例說明 262
6.9.2 具體實現 262
6.9.3 範例技巧—提醒框視圖的意義 262
6.10 自定義UIAlertView控制項的外觀 263
6.10.1 範例說明 263
6.10.2 具體實現 263
6.10.3 範例技巧—對UIAlertView的
要求 266
6.11 使用UIAlertView控制項(Swift版) 266
6.11.1 範例說明 266
6.11.2 具體實現 266
6.11.3 範例技巧—在實現提醒視圖前需要先聲明一個UIAlertView對象 266
6.12 實現特殊樣式效果的UIActionSheet 266
6.12.1 範例說明 267
6.12.2 具體實現 267
6.12.3 範例技巧—UIActionSheet的
作用 267
6.13 實現Reeder閱讀器效果 267
6.13.1 範例說明 267
6.13.2 具體實現 267
6.13.3 範例技巧—Reeder閱讀器介紹 271
6.14 定製一個按鈕面板 271
6.14.1 範例說明 271
6.14.2 具體實現 271
6.14.3 範例技巧—操作表的基本用法 272
6.15 實現一個分享App(Swift版) 272
6.15.1 範例說明 272
6.15.2 具體實現 272
6.15.3 範例技巧—操作表外觀有4種
樣式 274
6.16 使用UIToolBar實現工具列(Swift版) 274
6.16.1 範例說明 274
6.16.2 具體實現 274
6.16.3 範例技巧—工具列的作用 275
6.17 自定義UIToolBar的顏色和樣式 275
6.17.1 範例說明 275
6.17.2 具體實現 275
6.17.3 範例技巧—工具列與分段控制項的
差別 276
6.18 創建一個帶有圖示按鈕的工具列 276
6.18.1 範例說明 276
6.18.2 具體實現 276
6.18.3 範例技巧—調整工具列按鈕位置的
方法 277
6.19 實現格線效果 278
6.19.1 範例說明 278
6.19.2 具體實現 278
6.19.3 範例技巧—UICollectionView的
構成 280
6.20 實現大小不相同的格線效果 280
6.20.1 範例說明 281
6.20.2 具體實現 281
6.20.3 範例技巧—UICollectionViewDataSource代理介紹 283
6.21 實現Pinterest樣式的布局效果
(Swift版) 283
6.21.1 範例說明 284
6.21.2 具體實現 284
6.21.3 範例技巧—得到高效View的
秘籍 285
6.22 創建並使用選擇框 286
6.22.1 範例說明 286
6.22.2 具體實現 286
6.22.3 範例技巧—開關控制項的
默認尺寸 287
6.23 自定義工具條 287
6.23.1 範例說明 287
6.23.2 具體實現 287
6.23.3 範例技巧—為UIAlertView添加多個按鈕 288
6.24 實現一個帶輸入框的提示框 288
6.24.1 範例說明 288
6.24.2 具體實現 288
6.24.3 範例技巧—如何為UIAlertView添加子視圖 289
6.25 實現一個圖片選擇器 289
6.25.1 範例說明 289
6.25.2 具體實現 289
6.25.3 範例技巧—自定義訊息文本 291
6.26 控制開關控制項的狀態(Swift版) 291
6.26.1 範例說明 291
6.26.2 具體實現 291
6.26.3 範例技巧—設定在開關狀態切換時收到通知 292
6.27 在螢幕中顯示不同樣式的開關控制項
(Swift版) 292
6.27.1 範例說明 292
6.27.2 具體實現 292
6.27.3 範例技巧—關於UISwitch的亮點特殊說明 295
6.28 實現指定樣式的選項卡效果(Swift版) 295
6.28.1 範例說明 295
6.28.2 具體實現 295
6.28.3 範例技巧—獲取標籤之間分割線的圖案 296
6.29 使用選項卡控制螢幕的背景顏色
(Swift版) 296
6.29.1 範例說明 296
6.29.2 具體實現 296
6.29.3 範例技巧—自行設定標籤內容的偏移量 297
6.30 實現圖文效果的提醒框(Swift版) 297
6.30.1 範例說明 297
6.30.2 具體實現 297
6.30.3 範例技巧—didPresentAlertView和willPresentAlertView的區別 298
6.31 實現一個獨立的提醒框效果
(Swift版) 298
6.31.1 範例說明 298
6.31.2 具體實現 299
6.31.3 範例技巧—提醒框視圖delegate 方法的執行順序 299
6.32 實現一個基本的選項卡提醒框
(Swift版) 299
6.32.1 範例說明 299
6.32.2 具體實現 299
6.32.3 範例技巧—操作表與提醒視圖的
區別 300
6.33 創建自定義效果的UIActionSheet
(Swift版) 300
6.33.1 範例說明 300
6.33.2 具體實現 300
6.33.3 範例技巧—回響操作表的方法 301
6.34 設定UIBarButtonItem圖示(Swift版) 302
6.34.1 範例說明 302
6.34.2 具體實現 302
6.34.3 範例技巧—UIBarButtonItem的最簡單定製方法 303
6.35 編輯UIBarButtonItem的標題
(Swift版) 303
6.35.1 範例說明 303
6.35.2 具體實現 303
6.35.3 範例技巧—配製欄按鈕的屬性 304
第7章 自動互動實戰 306
7.1 實現界面滾動效果 306
7.1.1 範例說明 306
7.1.2 具體實現 306
7.1.3 範例技巧—滾動功能在移動設備中的意義 307
7.2 滑動隱藏狀態欄 307
7.2.1 範例說明 307
7.2.2 具體實現 307
7.2.3 範例技巧—滾動控制項的原理 308
7.3 滾動瀏覽圖片(Swift版) 308
7.3.1 範例說明 308
7.3.2 具體實現 308
7.3.3 範例技巧—滾動控制項的初始化 309
7.4 自定義 UIPageControl的外觀樣式 309
7.4.1 範例說明 309
7.4.2 具體實現 309
7.4.3 範例技巧—什麼是翻頁控制項 310
7.5 實現一個圖片播放器 310
7.5.1 範例說明 310
7.5.2 具體實現 310
7.5.3 範例技巧—分頁控制項的展示
方式 312
7.6 實現一個圖片瀏覽程式 312
7.6.1 範例說明 312
7.6.2 具體實現 312
7.6.3 範例技巧—創建UIPageControl控制項並設定屬性的通用方法 313
7.7 使用UIPageControl設定4個界面
(Swift版) 313
7.7.1 範例說明 313
7.7.2 具體實現 313
7.7.3 範例技巧—傳送分頁通知的解決
方案 315
7.8 實現兩個UIPickerView間的數據依賴 315
7.8.1 範例說明 315
7.8.2 具體實現 315
7.8.3 範例技巧—為什麼修改參數 317
7.9 自定義一個選擇器 317
7.9.1 範例說明 318
7.9.2 具體實現 318
7.9.3 範例技巧—總結規劃變數和連線的過程 321
7.10 實現一個單列選擇器 321
7.10.1 範例說明 321
7.10.2 具體實現 321
7.10.3 範例技巧—添加選擇器視圖的
方法 322
7.11 實現一個會發音的倒 計時器
(Swift版) 322
7.11.1 範例說明 322
7.11.2 具體實現 322
7.11.3 範例技巧—選擇器視圖的數據源
協定 324
7.12 實現一個日期選擇器 325
7.12.1 範例說明 325
7.12.2 具體實現 325
7.12.3 範例技巧—什麼是選擇器 328
7.13 使用日期選擇器自動選擇一個時間 328
7.13.1 範例說明 328
7.13.2 具體實現 328
7.13.3 範例技巧—Apple中的兩種
選擇器 329
7.14 使用UIDatePicker(Swift版) 329
7.14.1 範例說明 329
7.14.2 具體實現 329
7.14.3 範例技巧—總結日期選擇器的常用屬性 331
7.15 自定義UIActivityIndicatorView的樣式 332
7.15.1 範例說明 332
7.15.2 具體實現 332
7.15.3 範例技巧—UIActivityIndicatorView的功能 334
7.16 自定義活動指示器的顯示樣式 335
7.16.1 範例說明 335
7.16.2 具體實現 335
7.16.3 範例技巧—iOS內置的不同樣式的UIActivityIndicator View 338
7.17 實現不同外觀的活動指示器效果 338
7.17.1 範例說明 338
7.17.2 具體實現 338
7.17.3 範例技巧—UIActivityIndicatorView的使用演示 339
7.18 使用UIActivityIndicatorView控制項
(Swift版) 339
7.18.1 範例說明 339
7.18.2 具體實現 339
7.18.3 範例技巧—總結
UIActivityIndicatorView的用處 340
7.19 自定義進度條的外觀樣式 340
7.19.1 範例說明 340
7.19.2 具體實現 340
7.19.3 範例技巧—3種屬性設定風格 341
7.20 實現多個具有動態條紋背景的進度條 341
7.20.1 範例說明 341
7.20.2 具體實現 341
7.20.3 範例技巧—UIProgressView與UIActivityIndicatorView的差異 343
7.21 自定義一個指定外觀樣式的進度條 344
7.21.1 範例說明 344
7.21.2 具體實現 344
7.21.3 範例技巧—進度條的常用屬性 347
7.22 實現自定義進度條效果(Swift版) 348
7.22.1 範例說明 348
7.22.2 具體實現 348
7.22.3 範例技巧—常用的兩種進度條
風格 349
7.23 在查找信息輸入關鍵字時實現自動提示
功能 349
7.23.1 範例說明 349
7.23.2 具體實現 349
7.23.3 範例技巧—UISearchBar控制項的常用屬性 350
7.24 實現文字輸入的自動填充和自動提示
功能 351
7.24.1 範例說明 351
7.24.2 具體實現 351
7.24.3 範例技巧—修改UISearchBar的背景顏色 352
7.25 使用檢索控制項快速搜尋信息 352
7.25.1 範例說明 352
7.25.2 具體實現 352
7.25.3 範例技巧—利用委託進行搜尋的
過程 355
7.26 使用UISearchBar控制項(Swift版) 355
7.26.1 範例說明 355
7.26.2 具體實現 355
7.26.3 範例技巧—searchDisplayController的搜尋過程 356
7.27 在螢幕中顯示一個日期選擇器 356
7.27.1 範例說明 356
7.27.2 具體實現 356
7.27.3 範例技巧—創建日期/時間
選取器 357
7.28 通過滾動螢幕的方式瀏覽信息 357
7.28.1 範例說明 357
7.28.2 具體實現 358
7.28.3 範例技巧—滾動控制項的屬性
總結 358
7.29 實現一個圖文樣式聯繫人列表效果 359
7.29.1 範例說明 359
7.29.2 具體實現 359
7.29.3 範例技巧—UIScrollView的
實現理念 360
7.30 在螢幕中實現一個環形進度條效果 360
7.30.1 範例說明 360
7.30.2 具體實現 360
7.30.3 範例技巧—改變UIProgressView
控制項的高度 361
7.31 實現快速搜尋功能 361
7.31.1 範例說明 361
7.31.2 具體實現 362
7.31.3 範例技巧—去除SearchBar背景的
方法 364
7.32 實現一個“星期”選擇框(Swift版) 364
7.32.1 範例說明 364
7.32.2 具體實現 364
7.32.3 範例技巧—日期選取器的模式 365
7.33 實現一個自動輸入系統(Swift版) 365
7.33.1 範例說明 365
7.33.2 具體實現 366
7.33.3 範例技巧—設定時間間隔 367
7.34 自定義UIDatePicker控制項(Swift版) 367
7.34.1 範例說明 367
7.34.2 具體實現 367
7.34.3 範例技巧—設定日期的範圍 369
7.35 自定義“日期-時間”控制項(Swift版) 370
7.35.1 範例說明 370
7.35.2 具體實現 370
7.35.3 範例技巧—顯示日期選擇器的
方法 370
7.36 實現一個圖片瀏覽器(Swift版) 370
7.36.1 範例說明 370
7.36.2 具體實現 370
7.36.3 範例技巧—UIScrollView的
核心理念 371
7.37 實現一個分頁圖片瀏覽器(Swift版) 371
7.37.1 範例說明 372
7.37.2 具體實現 372
7.37.3 範例技巧—實現翻頁通知的
方法 372
7.38 實現一個圖片瀏覽器(Swift版) 373
7.38.1 範例說明 373
7.38.2 具體實現 373
7.38.3 範例技巧—給UIPageControl控制項添加背景 374
7.39 設定多個分頁視圖(Swift版) 374
7.39.1 範例說明 374
7.39.2 具體實現 375
7.39.3 範例技巧—推出UIPageControl的
意義 376
7.40 自定義UIActivityIndicatorView控制項
(Swift版) 376
7.40.1 範例說明 376
7.40.2 具體實現 376
7.40.3 範例技巧—關閉活動指示器動畫的方法 377
7.41 實現5種樣式的活動指示器效果
(Swift版) 377
7.41.1 範例說明 377
7.41.2 具體實現 377
7.41.3 範例技巧—設定UIActivityIndicatorView背景顏色的
方法 380
7.42 自定義設定ProgressBar的
樣式(Swift版) 380
7.42.1 範例說明 380
7.42.2 具體實現 380
7.42.3 範例技巧—單獨設定已走過進度的進度條顏色的方法 380
7.43 設定UIProgressView的樣式(Swift版) 380
7.43.1 範例說明 381
7.43.2 具體實現 381
7.43.3 範例技巧—如何設定未走過進度的進度條顏色 381
7.44 快速搜尋系統(Swift版) 381
7.44.1 範例說明 381
7.44.2 具體實現 381
7.44.3 範例技巧—4個搜尋狀態改變的關鍵函式 383
7.45 實現具有兩個視圖界面的搜尋系統
(Swift版) 383
7.45.1 範例說明 383
7.45.2 具體實現 383
7.45.3 範例技巧—顯示和隱藏tableview的4種方法 383
第8章 圖形、圖像和動畫實戰 384
8.1 實現圖像的模糊效果 384
8.1.1 範例說明 384
8.1.2 具體實現 384
8.1.3 範例技巧—iOS模糊功能的發展
歷程 386
8.2 滾動瀏覽圖片 386
8.2.1 範例說明 387
8.2.2 具體實現 387
8.2.3 範例技巧—圖像視圖的作用 387
8.3 實現一個圖片瀏覽器 388
8.3.1 範例說明 388
8.3.2 具體實現 388
8.3.3 範例技巧—創建一個UIImageView的方法 389
8.4 實現3個圖片按鈕(Swift版) 389
8.4.1 範例說明 389
8.4.2 具體實現 390
8.4.3 範例技巧—屬性frame與屬性
bounds 391
8.5 在螢幕中繪製一個三角形 391
8.5.1 範例說明 391
8.5.2 具體實現 391
8.5.3 範例技巧—在iOS中繪圖的兩種
方式 392
8.6 在螢幕中繪製一個三角形 392
8.6.1 範例說明 392
8.6.2 具體實現 392
8.6.3 範例技巧—iOS的核心圖形庫的繪圖原理 395
8.7 繪製移動的曲線(Swift版) 395
8.7.1 範例說明 395
8.7.2 具體實現 395
8.7.3 範例技巧—OpenGL ES繪圖方式的原理 395
8.8 在螢幕中實現顏色選擇器/調色板功能 396
8.8.1 範例說明 396
8.8.2 具體實現 396
8.8.3 範例技巧—UIImageView和Core Graphics都可以繪圖 396
8.9 繪製一個小黃人圖像 396
8.9.1 範例說明 397
8.9.2 具體實現 397
8.9.3 範例技巧—繪圖中的坐標系 397
8.10 實現圖片、文字以及翻轉效果 398
8.10.1 範例說明 398
8.10.2 具體實現 398
8.10.3 範例技巧—繪圖系統的畫圖板
原理 399
8.11 滑動展示不同的圖片 399
8.11.1 範例說明 399
8.11.2 具體實現 399
8.11.3 範例技巧—什麼是圖層 400
8.12 演示CALayers圖層的用法(Swift版) 400
8.12.1 範例說明 400
8.12.2 具體實現 401
8.12.3 範例技巧—圖層有影響繪圖效果的屬性 401
8.13 使用圖像動畫 402
8.13.1 範例說明 402
8.13.2 具體實現 402
8.13.3 範例技巧—需要提前考慮的兩個
問題 405
8.14 實現UIView分類動畫效果 405
8.14.1 範例說明 405
8.14.2 具體實現 405
8.14.3 範例技巧—在iOS中實現動畫的
方法 406
8.15 使用動畫的樣式顯示電量的使用情況 407
8.15.1 範例說明 407
8.15.2 具體實現 407
8.15.3 範例技巧—UIImageView實現動畫的原理 410
8.16 圖形圖像的人臉檢測處理(Swift版) 410
8.16.1 範例說明 410
8.16.2 具體實現 410
8.16.3 範例技巧—在UIImageView中和動畫相關的方法和屬性 411
8.17 實現一個幻燈片播放器效果 411
8.17.1 範例說明 411
8.17.2 具體實現 411
8.17.3 範例技巧—iOS系統的核心
動畫 412
8.18 繪製幾何圖形 412
8.18.1 範例說明 412
8.18.2 具體實現 412
8.18.3 範例技巧—基本的繪圖過程 413
8.19 實現對圖片的旋轉和縮放 414
8.19.1 範例說明 414
8.19.2 具體實現 414
8.19.3 範例技巧—總結Core Graphics中常用的繪圖方法 414
8.20 使用屬性動畫 414
8.20.1 範例說明 415
8.20.2 具體實現 415
8.20.3 範例技巧—總結beginAnimations:context:的功能 417
8.21 給圖片著色(Swift版) 417
8.21.1 範例說明 417
8.21.2 具體實現 417
8.21.3 範例技巧—總結contentMode
屬性 418
8.22 實現旋轉動畫效果(Swift版) 419
8.22.1 範例說明 419
8.22.2 具體實現 419
8.22.3 範例技巧—總結+ (void)commitAnimations 419
8.23 繪製一個時鐘(Swift版) 420
8.23.1 範例說明 420
8.23.2 具體實現 420
8.23.3 範例技巧—更改圖片位置的
方法 421
8.24 繪製一個可控制的環形進度條
(Swift版) 422
8.24.1 範例說明 422
8.24.2 具體實現 422
8.24.3 範例技巧—總結旋轉圖像的
方法 422
8.25 實現大小圖形的變換(Swift版) 423
8.25.1 範例說明 423
8.25.2 具體實現 423
8.25.3 範例技巧—圖層可以在一個單獨的視圖中被組合起來 424
8.26 為圖層增加陰影效果(Swift版) 424
8.26.1 範例說明 424
8.26.2 具體實現 424
8.26.3 範例技巧—圖層是動畫的基本組成部分 425
8.27 實現觸摸動畫效果(Swift版) 425
8.27.1 範例說明 425
8.27.2 具體實現 425
8.27.3 範例技巧—視圖和圖層的關係 426
8.28 實現動畫效果(Swift版) 426
8.28.1 範例說明 427
8.28.2 具體實現 427
8.28.3 範例技巧—實現多個動畫的
方法 429
8.29 在螢幕中實現模糊效果 429
8.29.1 範例說明 429
8.29.2 具體實現 429
8.29.3 範例技巧—避免將UIVisualEffectView的Alpha設定為小於1.0的值 430
8.30 給指定圖片實現模糊效果 430
8.30.1 範例說明 431
8.30.2 具體實現 431
8.30.3 範例技巧—初始化一個UIVisualEffectView對象的方法 433
8.31 編碼實現指定圖像的模糊效果
(Swift版) 433
8.31.1 範例說明 433
8.31.2 具體實現 433
8.31.3 範例技巧—UIBlurEffect和UIVibrancyEffect的區別 434
第9章 多媒體套用實戰 435
9.1 播放聲音檔案 435
9.1.1 範例說明 435
9.1.2 具體實現 435
9.1.3 範例技巧—訪問聲音服務 438
9.2 播放列表中的音樂(Swift版) 438
9.2.1 範例說明 438
9.2.2 具體實現 439
9.2.3 範例技巧—iOS系統的播放聲音
服務 442
9.3 使用iOS的提醒功能 442
9.3.1 範例說明 442
9.3.2 具體實現 442
9.3.3 範例技巧—創建包含多個按鈕的提醒視圖 444
9.4 實現兩種類型的振動效果(Swift版) 444
9.4.1 範例說明 444
9.4.2 具體實現 444
9.4.3 範例技巧—System Sound Services
支持的3種通知 445
9.5 使用Media Player播放視頻 445
9.5.1 範例說明 445
9.5.2 具體實現 445
9.5.3 範例技巧—iOS系統的多媒體播放
機制 447
9.6 邊下載邊播放視頻 447
9.6.1 範例說明 447
9.6.2 具體實現 447
9.6.3 範例技巧—Media Player框架
介紹 449
9.7 播放指定的視頻(Swift版) 449
9.7.1 範例說明 449
9.7.2 具體實現 449
9.7.3 範例技巧—Media Player的原理 451
9.8 播放指定的視頻 451
9.8.1 範例說明 451
9.8.2 具體實現 452
9.8.3 範例技巧—官方建議使用AV Foundation框架 452
9.9 播放和暫停指定的MP3檔案
(Swift版) 452
9.9.1 範例說明 453
9.9.2 具體實現 453
9.9.3 範例技巧—牢記開發前的準備
工作 453
9.10 獲取相機Camera中的圖片並縮放 453
9.10.1 範例說明 454
9.10.2 具體實現 454
9.10.3 範例技巧—圖像選擇器的重要
功能 457
9.11 選擇相機中的照片(Swift版) 457
9.11.1 範例說明 457
9.11.2 具體實現 457
9.11.3 範例技巧—使用圖像選擇器的通用流程 459
9.12 實現一個多媒體的應用程式 459
9.12.1 範例說明 459
9.12.2 具體實現 460
9.12.3 範例技巧—系統總體規劃 462
9.13 實現一個音樂播放器(Swift版) 462
9.13.1 範例說明 462
9.13.2 具體實現 463
9.13.3 範例技巧—使用AV Foundation框架前的準備 463
9.14 實現一個美觀的音樂播放器
(Swift版) 463
9.14.1 範例說明 464
9.14.2 具體實現 464
9.14.3 範例技巧—使用AV音頻播放器的通用流程 465
9.15 實現視頻播放和調用照片庫
功能(Swift版) 466
9.15.1 範例說明 466
9.15.2 具體實現 466
9.15.3 範例技巧—總結Media Player框架中的常用類 467
9.16 播放指定的MP4視頻(Swift版) 467
9.16.1 範例說明 468
9.16.2 具體實現 468
9.16.3 範例技巧—使用多媒體播放器前的準備 468
9.17 播放和暫停指定的MP3(Swift版) 468
9.17.1 範例說明 468
9.17.2 具體實現 468
9.17.3 範例技巧—總結使用AV錄音機的基本流程 470
9.18 實現一個圖片瀏覽器(Swift版) 470
9.18.1 範例說明 470
9.18.2 具體實現 471
9.18.3 範例技巧—圖像選擇器控制器
委託 472
9.19 實現一個智慧型圖片瀏覽器(Swift版) 473
9.19.1 範例說明 473
9.19.2 具體實現 473
9.19.3 範例技巧—UIImagePickerController在iPhone和iPad上的區別 475
第 10章 網際網路套用實戰 476
10.1 調用JavaScript腳本 476
10.1.1 範例說明 476
10.1.2 具體實現 476
10.1.3 範例技巧—Web視圖的作用 477
10.2 動態改變字型的大小 477
10.2.1 範例說明的 477
10.2.2 具體實現 478
10.2.3 範例技巧—總結Web視圖可以實現的檔案 478
10.3 實現一個迷你瀏覽器工具 479
10.3.1 範例說明 479
10.3.2 具體實現 479
10.3.3 範例技巧—總結使用Web視圖的基本流程 480
10.4 載入顯示指定的網頁(Swift版) 480
10.4.1 範例說明 480
10.4.2 具體實現 481
10.4.3 範例技巧—顯示內容的另一種解決方案 481
10.5 使用可滾動視圖控制項(Swift版) 482
10.5.1 範例說明 482
10.5.2 具體實現 482
10.5.3 範例技巧—本項目規劃 483
10.6 使用Message UI傳送郵件(Swift版) 483
10.6.1 範例說明 483
10.6.2 具體實現 483
10.6.3 範例技巧—總結使用框架Message UI的基本流程 484
10.7 開發一個Twitter客戶端(Swift版) 485
10.7.1 範例說明 485
10.7.2 具體實現 485
10.7.3 範例技巧—總結使用Twitter框架的基本流程 486
10.8 聯合使用地址簿、電子郵件、Twitter和地圖(Swift版) 487
10.8.1 範例說明 487
10.8.2 具體實現 487
10.8.3 範例技巧—總結為iOS項目添加第三方框架的方法 488
10.9 獲取網站中的照片信息(Swift版) 489
10.9.1 範例說明 489
10.9.2 具體實現 489
10.9.3 範例技巧—手機和雲平台之間傳遞的通用數據格式 492
10.10 快速瀏覽不同的站點(Swift版) 492
10.10.1 範例說明 493
10.10.2 具體實現 493
10.10.3 範例技巧—控制螢幕中的網頁的
方法 493
10.11 實現一個網頁瀏覽器(Swift版) 493
10.11.1 範例說明 493
10.11.2 具體實現 493
10.11.3 範例技巧—在網頁中實現觸摸處
理的方法 494
10.12 自動快取網頁數據 494
10.12.1 範例說明 494
10.12.2 具體實現 494
10.12.3 範例技巧—總結UIWebView中主
要的委託方法 495
10.13 實現一個Web瀏覽器 495
10.13.1 範例說明 495
10.13.2 具體實現 495
10.13.3 範例技巧—MIME在瀏覽器中的
作用 498
10.14 實現Cookie功能的登錄系統
(Swift版) 499
10.14.1 範例說明 499
10.14.2 具體實現 499
10.14.3 範例技巧—本實例的兩個
難點 501
10.15 載入指定的網頁檔案 501
10.15.1 範例說明 501
10.15.2 具體實現 501
10.15.3 範例技巧—總結UIWebView的
優點 502
10.16 實現Objective-C和JS橋接功能 503
10.16.1 範例說明 503
10.16.2 具體實現 503
10.16.3 範例技巧—iOS中最常用的橋接
開發 504
10.17 實現微信樣式的導航效果 505
10.17.1 範例說明 505
10.17.2 具體實現 505
10.17.3 範例技巧—載入本地文本檔案的
通用方法 507
10.18 實現和JavaScript的互動 508