第1篇 界面构建篇 2
第1章 使用C#编写第一个iOS应用程序 2
1.1 初识Xamarin 2
1.1.1 Xamarin发展 2
1.1.2 Xamarin特点 2
1.1.3 Xamarin版本 3
1.1.4 工具需求 4
1.2 搭建开发环境 4
1.2.1 开发者账号 4
1.2.2 下载和安装Xamarin 7
1.2.3 下载和安装Xcode 12
1.3 编写第一个应用程序 15
1.3.1 创建工程 15
1.3.2 编辑、连接、运行 16
1.3.3 iOS Simulator 18
1.3.4 Interface Builder 21
1.3.5 编写代码 23
1.3.6 调试程序 24
1.3.7 文件简述 25
1.4 使用真机测试应用程序 26
1.4.1 申请付费开发者账号 26
1.4.2 申请和下载证书 28
1.4.3 实现真机测试 36
第2章 用户界面——视图 38
2.1 视图 38
2.2 添加和定制视图 38
2.2.1 使用Interface Builder添加视图 38
2.2.2 使用代码添加视图 40
2.2.3 删除视图 42
2.2.4 视图的位置和大小 43
2.3 使用按钮接受用户输入 44
2.3.1 使用代码添加按钮 44
2.3.2 按钮的格式化设置 45
2.3.3 按钮的响应 49
2.4 显示图像 51
2.4.1 为视图显示图像 51
2.4.2 定制特殊的图像 54
2.5 显示和编辑文本 56
2.5.1 标签视图 56
2.5.2 文本框视图 59
2.5.3 文本视图 62
2.6 使用键盘 64
2.6.1 定制键盘的输入类型 65
2.6.2 显示键盘时改变输入视图的位置 67
2.6.3 为键盘添加工具栏 70
2.7 进度条 71
2.8 滚动视图 74
2.9 页面控件 77
2.10 警告视图 81
2.10.1 为主视图添加警告视图 81
2.10.2 常用的警告视图样式 82
2.10.3 响应警告视图 86
2.11 自定义视图 88
2.12 一次性修改相同的视图 91
第3章 用户界面——控制器 93
3.1 使用视图控制器加载视图 93
3.2 导航不同的视图控制器 100
3.2.1 导航控制器的基本组成 100
3.2.2 添加导航控制器 101
3.2.3 通过导航控制器实现视图的切换 102
3.2.4 管理导航栏上的按钮 108
3.3 在标签栏中提供控制器 111
3.3.1 添加标签栏控制器 111
3.3.2 标签栏控制器的常用属性 114
3.3.3 标签栏控制器的响应 115
3.4 模型视图控制器 118
3.5 创建自定义视图控制器 121
3.6 利用视图控制器的有效性 123
3.7 iPad视图控制器 125
3.8 使用故事面板设计UI 129
3.9 故事面板中的Unwind Segue 135
第2篇 资源使用篇 140
第4章 数据管理 140
4.1 文件管理 140
4.1.1 创建文件 140
4.1.2 写入/读取内容 143
4.1.3 删除文件 145
4.2 使用SQLite数据库 147
4.2.1 创建数据库 147
4.2.2 插入数据 152
4.2.3 读取数据 152
4.2.4 查看数据库 153
4.3 使用iCloud 155
4.3.1 启动iCloud服务 155
4.3.2 在iCloud中存储键/值数据 156
第5章 显示数据 159
5.1 选择列表 159
5.1.1 日期选择器 159
5.1.2 自定义选择器 162
5.2 在表中显示数据 165
5.2.1 表中内容的显示 166
5.2.2 设置表 168
5.2.3 设置表单元格 172
5.3 编辑表 178
5.3.1 选取行 178
5.3.2 删除行 179
5.3.3 插入行 181
5.3.4 移动行 185
5.3.5 缩进 187
5.4 索引表 189
5.5 数据的查找 191
5.6 创建简单的网页浏览器 195
5.6.1 加载网页视图的内容 195
5.6.2 设置网页视图 199
5.6.3 网页视图常用事件 201
5.7 在网格中显示数据 205
5.7.1 网格中内容的显示 205
5.7.2 自定义网格 208
5.7.3 网格的响应 213
第6章 网络服务 214
6.1 使用Web服务 214
6.1.1 构建一个Web服务 214
6.1.2 Web服务的使用 219
6.2 使用REST服务 222
6.3 使用原生的API进行通信 225
第7章 多媒体资源 228
7.1 选择图像和视频 228
7.1.1 选择图像 228
7.1.2 向模拟器中添加图像 230
7.1.3 设置图像显示来源 233
7.1.4 选择视频 235
7.2 使用相机捕获媒体 238
7.2.1 打开相机 238
7.2.2 设置相机 239
7.2.3 捕获媒体 241
7.2.4 自定义相机 244
7.3 播放视频 248
7.3.1 播放视频文件 248
7.3.2 设置视频控制器 250
7.3.3 视频播放控制器常用的监听事件 253
7.4 播放音频 256
7.4.1 播放较短的音频文件 256
7.4.2 播放较长的音频文件 259
7.4.3 访问音乐库 264
7.5 使用麦克风录音 268
7.6 直接管理相册 271
7.6.1 获取相册中内容的路径 271
7.6.2 读取相册中EXIF数据 273
7.6.3 获取相册中的实际的照片 274
第8章 内置应用程序 278
8.1 打电话 278
8.2 使用Safari 280
8.3 发送短信和电子邮件 283
8.3.1 发送短信 283
8.3.2 发送电子邮件 285
8.4 在应用程序中使用短信 288
8.5 在应用程序中使用电子邮件 291
8.6 管理地址簿 296
8.6.1 访问地址簿 296
8.6.2 打开地址簿 298
8.6.3 添加联系人 299
8.6.4 显示联系人信息 301
8.7 管理日历 305
8.7.1 访问日历 305
8.7.2 打开日历事件界面 307
8.7.3 添加日历事件 308
第9章 与外部设备交互 316
9.1 检测设备的方向 316
9.2 调整UI的方向 317
9.3 近距离传感器 319
9.4 获取电池信息 321
9.5 处理运动事件 323
9.6 处理触摸事件 327
9.7 手势识别器 329
9.7.1 轻拍 329
9.7.2 捏 330
9.7.3 滑动 332
9.7.4 旋转 334
9.7.5 移动 335
9.7.6 长按 336
9.8 自定义手势 338
9.9 使用加速计 341
9.10 使用陀螺仪 343
第10章 位置服务和地图 346
10.1 确定位置 346
10.2 确定方向 349
10.3 使用区域监测 352
10.4 使用significant-change位置服务 355
10.5 在后台运行位置服务 357
10.6 使用地图 361
10.6.1 显示地图 361
10.6.2 改变地图的类型 361
10.6.3 在地图上显示当前位置 363
10.6.4 指定位置 365
10.6.5 添加标记 367
10.6.6 添加标注 369
10.6.7 限制地图的显示范围 372
10.6.8 添加覆盖图 374
10.7 地理编码 376
第3篇 高级应用篇 380
第11章 图形和动画 380
11.1 视图动画 380
11.1.1 动画块 380
11.1.2 修改动画块 382
11.1.3 动画属性 383
11.1.4 基于块的视图动画 383
11.2 视图的过渡动画 385
11.2.1 旋转动画 386
11.2.2 卷页动画 388
11.3 转换视图 391
11.4 计时器动画 393
11.5 图像动画 396
11.6 图层动画 398
11.7 图层的过渡动画 400
11.7.1 公开的过渡动画 400
11.7.2 非公开的过渡动画 402
11.8 绘制路径 406
11.8.1 绘制线段 406
11.8.2 绘制水平线 408
11.8.3 绘制折线 409
11.8.4 绘制曲线 410
11.9 绘制形状 412
11.10 绘制位图 414
11.10.1 绘制单个位图 414
11.10.2 绘制多个位图 415
11.11 绘制文字 416
11.12 创建一个简单的绘制应用程序——画板 418
11.13 创建位图图形上下文 419
第12章 多任务处理 424
12.1 检测应用程序的状态 424
12.2 接收应用程序状态的通知 426
12.3 在后台运行代码 428
12.4 在后台播放音频 430
12.5 在后台更新数据 433
12.6 禁用后台模式 436
第13章 本地化 438
13.1 创建一个具有多种语言的应用程序 438
13.2 本地化资源 442
13.3 区域格式 444
第14章 发布应用程序 447
14.1 申请发布证书 447
14.1.1 申请证书 447
14.1.2 申请证书对应的配置文件(Provision File) 449
14.2 准备提交应用程序 451
14.2.1 创建应用及基本信息 451
14.2.2 工程的相关设置 454
14.3 提交应用程序到App Store上 455
14.4 常见审核不通过的原因 461
第15章 高级功能 462
15.1 卷页效果 462
15.2 粒子系统 465
15.3 内容共享 467
15.4 动作表单 470
15.5 实现自定义过渡动画 472
15.6 在UI元素中使用物理引擎 477
15.7 实现文本到语言的功能 479