第1章 iOS应用开发入门 1
1.1带你认识iOS 1
1.1.1 iOS简介 1
1.1.2 iOS框架层次 2
1.1.3 iOS开发设备 3
1.1.4 iOS 8的全新功能 6
1.2搭建开发环境 7
1.2.1申请加入iOS开发团队 7
1.2.2下载和安装Xcode与iOS SDK 10
1.2.3 Xcode 6的新特性 12
1.3配置iOS设备以运行程序 15
1.3.1生成并安装证书 15
1.3.2 注册设备 20
1.3.3创建应用程序ID 21
1.3.4创建并安装描述文件 22
1.4使用 Xcode创建第一个iOS程序 23
1.4.1在Xcode中创建项目 23
1.4.2熟悉Xcode界面 26
1.4.3了解项目文件组织结构 30
1.4.4编译并在模拟器上运行程序 36
1.4.5使用Interface Builder丰富程序界面 36
1.4.6 使用iOS模拟器 47
1.5本章小结 48
第2章 UI控件 49
2.1 UIView概述 49
2.1.1什么是UIView 49
2.1.2 UIView的常见属性和方法 50
2.2标签控件和图片控件 51
2.2.1标签控件(UILabel) 51
2.2.2图片控件(UIImageView) 55
2.2.3实战演练——会喝牛奶的汤姆猫 57
2.3按钮控件(UIButton) 60
2.3.1按钮控件概述 60
2.3.2实战演练——使用按钮移动、旋转、缩放图片 63
2.4文本框控件和文本控件 67
2.4.1文本框控件(UITextField) 67
2.4.2实战演练——用户登录“传智播客” 71
2.4.3多行文本控件(UITextView) 74
2.5开关控件(UISwitch) 76
2.5.1开关控件概述 76
2.5.2实战演练——使用开关控制“灯泡” 77
2.6滑块控件(UISlider) 79
2.6.1滑块控件概述 79
2.6.2实战演练——使用滑块控制音量 81
2.7分段控件(UISegmentControl) 83
2.7.1分段控件概述 83
2.7.2实战演练——使用分段控件控制“花朵” 84
2.8 数据选择控件 87
2.8.1日期选择控件(UIDatePicker) 87
2.8.2实战演练——倒计时 89
2.8.3选择控件(UIPickerView) 92
2.8.4实战演练——点菜系统 95
2.9屏幕滚动控件(UIScrollView) 100
2.9.1屏幕滚动控件概述 100
2.9.2实战演练——喜马拉雅 103
2.10页控件(UIPageControl) 106
2.10.1页控件概述 106
2.10.2实战演练——自动轮播器 107
2.11本章小结 111
第3章 表视图 112
3.1表视图基础 112
3.1.1表视图的组成 112
3.1.2表视图样式设置 113
3.1.3数据源协议 114
3.1.4委托协议 114
3.1.5单元格的组成和样式 115
3.2实战演练——汽车品牌 117
3.2.1实战演练——创建简单表视图 117
3.2.2实战演练——添加索引 125
3.2.3实战演练——添加搜索栏 126
3.3自定义单元格 132
3.4静态单元格 138
3.5实战演练——通信录 144
3.5.1实战演练——删除和插入单元格 144
3.5.2实战演练——移动单元格 151
3.6 表视图UI设计模式 152
3.6.1分页模式 153
3.6.2下拉刷新模式 154
3.6.3 iOS 7的新特性——下拉刷新控件 156
3.6.4项目实战——下拉刷新时间数据 157
3.7本章小结 162
第4章 多视图控制器管理 163
4.1视图控制器概述 163
4.1.1程序启动原理 163
4.1.2视图控制器 165
4.2 导航控制器 167
4.2.1导航控制器的组成 168
4.2.2导航控制器的工作原理 169
4.2.3实战演练——图书列表跳转到图书 171
4.3标签页控制器 181
4.3.1标签页控制器的组成 182
4.3.2实战演练——搭建QQ的UI框架 184
4.4本章小结 196
第5章 iOS常用设计模式 197
5.1 MVC模式 197
5.1.1 MVC概述 197
5.1.2 Cocoa Touch中的MVC模式 198
5.2委托模式 200
5.2.1委托模式概述 200
5.2.2 Cocoa Touch框架的委托模式 202
5.2.3自定义委托模式 207
5.3观察者模式 212
5.3.1观察者模式概述 212
5.3.2 KVC机制 212
5.3.3 KVO机制 218
5.3.4通知机制 224
5.4单例模式 231
5.4.1单例模式概述 231
5.4.2实战演练——ARC+GCD情况下的单例模式 235
5.5本章小结 238
第6章 数据存储 239
6.1沙盒机制 239
6.1.1沙盒概述 239
6.1.2沙盒结构分析 240
6.1.3沙盒目录获取方式 240
6.2 plist属性列表 241
6.2.1实战演练——创建PropertyList工程 241
6.2.2实战演练——数据的保存 243
6.2.3实战演练——数据的读取 248
6.3偏好设置 249
6.3.1偏好设置的概述 249
6.3.2实战演练——记住密码 251
6.4对象归档 254
6.4.1对象归档概述 254
6.4.2 NSCoding协议 255
6.4.3实战演练——归档自定义对象 256
6.5 SQLite数据库 260
6.5.1 SQLite简介 260
6.5.2 SQL语句 261
6.5.3实战演练——使用SQLite3存储对象 262
6.6 Core Data 268
6.6.1 Core Data简介 268
6.6.2实战演练——使用Core Data创建模型 269
6.6.3实战演练——使用Core Data插入、查询、删除数据 273
6.7本章小结 279
第7章 事件与手势识别 280
7.1事件概述 280
7.2触摸处理 281
7.2.1触屏对象 281
7.2.2响应对象 283
7.2.3响应者链条 284
7.2.4实战演练——多点触摸 285
7.3手势识别 288
7.3.1 UIGestureRecognizer类 288
7.3.2实战演练——轻扫手势 294
7.3.3实战演练——捏合手势 297
7.4本章小结 299
第8章 核心动画 301
8.1 CALayer 301
8.1.1 CALayer类概述 301
8.1.2实战演练——给图像添加阴影、边框和圆角 303
8.2 Core Animation详解 307
8.3属性动画 309
8.3.1 CAPropertyAnimation类 309
8.3.2实战演练——使用动画旋转、平移、渐变和缩放“爱心” 310
8.3.3实战演练——小圆点绕矩形、圆形轨迹循环运动 315
8.4实战演练——使用动画组实现“游动的小鱼” 320
8.5转场动画 324
8.5.1 CATrans tion类 324
8.5.2实战演练——图片浏览器 325
8.6本章小结 331