还要iPhone和iPad应用开发的大门口彷徨?還是早已投身于iOS应用开发势力,但期待快速提高自己的功力?挑选这书可让你欢乐送。五位作者均是zi深挪动开发权威专家,具备丰富多彩的Mac、iOS、Cocoa、Objective-C及Swift开发经验,她们将很多年的实战演练经验与聪慧感受汇聚成本费书,致力于协助沒有经验的读者圆满叩响iOS应用开发的大门口,协助有经验的读者快速提高功力,进而在iOS开发的路面上无坚不摧。这书自面世至今就遭受读者的交口赞誉,被誉为学习培训iOS服务平台开发的不二之选。汉化版总计销售量已超出八万册。新版本干了大幅度修定,根据新的Xcode和iOS10电脑操作系统,用Swift語言重新写过了书里的全部实例,而且适配Swift3。你还在等什么?马上展卷阅读文章,添加iOS开发的队伍吧!
这书是iOS应用开发初级教程,內容详实,語言栩栩如生。作者融合很多案例,应用Swift語言由浅入深地解读了适用iPhoneiPad开发的基础步骤。新版本详细介绍强劲的iOS10电脑操作系统,包含Xcode8的新作用,书里全部实例所有再次撰写。
目录
- 第 1 章 欢迎来到 iOS 和 Swift 世界 1
- 1.1 关于本书 1
- 1.2 必备条件 2
- 1.2.1 选择开发者计划 3
- 1.2.2 必备知识 5
- 1.2.3 iOS应用程序的特点 5
- 1.3 本书内容 8
- 1.3.1 新版增加内容 9
- 1.3.2 Swift 和 Xcode 版本 9
- 1.3.3 准备好了吗 9
- 第 2 章 创建第一个 App 10
- 2.1 创建“Hello, World!”项目 10
- 2.1.1 Xcode 项目窗口 13
- 2.1.2 深入了解项目 20
- 2.2 Interface Builder简介 21
- 2.2.1 文件格式 22
- 2.2.2 storyboard 22
- 2.2.3 实用工具 23
- 2.2.4 在视图中添加标签 24
- 2.2.5 属性修改 27
- 2.3 画龙点睛——美化 iPhone 应用程序 28
- 2.4 启动界面 32
- 2.5 在设备上运行应用 33
- 2.6 小结 36
- 第 3 章 基本的用户交互 37
- 3.1 MVC模式 37
- 3.2 创建 ButtonFun应用 38
- 3.3 视图控制器 39
- 3.3.1 输出接口和操作方法 40
- 3.3.2 精简视图控制器代码 41
- 3.3.3 设计用户界面 42
- 3.3.4 测试 ButtonFun应用 49
- 3.3.5 布局预览 57
- 3.3.6 改变文本样式 59
- 3.4 应用程序委托 60
- 3.5 小结 62
- 第 4 章 更丰富的用户界面 63
- 4.1 动态控件、静态控件和被动控件 66
- 4.2 创建 Control Fun应用程序 66
- 4.3 实现图像视图和文本框 67
- 4.3.1 添加图像视图 67
- 4.3.2 调整图像视图的大小 69
- 4.3.3 设置视图属性 71
- 4.3.4 添加文本框 72
- 4.3.5 添加约束 78
- 4.3.6 创建并关联输出接口 79
- 4.4 关闭键盘 80
- 4.4.1 按下 Done 按钮关闭键盘 81
- 4.4.2 触摸背景关闭键盘 82
- 4.4.3 添加滑动条和标签 83
- 4.4.4 创建并关联操作方法和输出接口 85
- 4.4.5 实现操作方法 85
- 4.5 实现开关、按钮和分段控件 86
- 4.5.1 添加两个带标签的开关 87
- 4.5.2 为开关创建并关联输出接口和操作方法 87
- 4.5.3 实现开关的操作方法 88
- 4.5.4 控件状态 90
- 4.5.5 为按钮创建并关联输出接口和操作方法 91
- 4.6 实现分段控件的操作方法 91
- 4.7 实现操作表单和警告视图 92
- 4.7.1 显示操作表单 92
- 4.7.2 显示警告视图 95
- 4.8 小结 96
- 第 5 章 自动旋转 97
- 5.1 自动旋转机制 98
- 5.1.1 点、像素和 Retina 显示屏 98
- 5.1.2 控制旋转 98
- 5.2 创建 Orientations项目 99
- 5.2.1 应用级支持的方向 99
- 5.2.2 独立控制器的旋转支持 101
- 5.3 创建布局项目 102
- 5.3.1 覆盖默认的约束 105
- 5.3.2 与屏幕等宽的标签 107
- 5.4 创建自适应布局 109
- 5.4.1 创建 Restructure 应用程序 109
- 5.4.2 设置 iPhone 的横向(wC hC)配置布局 116
- 5.4.3 设置 iPad(以及 iPhone Plus横向)的 wR hR配置 124
- 5.5 小结 131
- 第 6 章 创建多视图应用 132
- 6.1 多视图应用的常见类型 132
- 6.2 多视图应用的体系结构 135
- 6.2.1 根控制器 137
- 6.2.2 内容视图剖析 137
- 6.3 构建 View Switcher项目 137
- 6.3.1 重命名视图控制器 137
- 6.3.2 添加内容视图控制器 139
- 6.3.3 修改 SwitchingViewController.swift 140
- 6.3.4 创建拥有工具栏的视图 140
- 6.3.5 连接工具栏按钮和视图控制器 142
- 6.3.6 编写根视图控制器 143
- 6.3.7 实现内容视图 147
- 6.3.8 过渡动画效果 150
- 6.4 小结 152
- 第 7 章 分页栏与选取器 153
- 7.1 Pickers应用程序 153
- 7.2 委托和数据源 156
- 7.3 创建 Pickers应用程序 157
- 7.3.1 创建视图控制器 157
- 7.3.2 创建分页栏控制器 158
- 7.3.3 首次模拟器测试 161
- 7.3.4 实现日期选取器 162
- 7.4 实现单滚轮选取器 164
- 7.4.1 构建视图 164
- 7.4.2 将控制器实现为数据源和委托 168
- 7.5 实现多滚轮选取器 170
- 7.5.1 构建视图 170
- 7.5.2 实现控制器 170
- 7.5.3 滚轮内容根据环境变化 172
- 7.6 使用自定义选取器创建一个简单游戏 178
- 7.6.1 编写控制器头文件 178
- 7.6.2 构建视图 178
- 7.6.3 实现控制器 179
- 7.6.4 最后的细节 182
- 7.7 小结 185
- 第 8 章 表视图简介 186
- 8.1 表视图基础 186
- 8.1.1 表视图和表视图单元 186
- 8.1.2 分组表和连续表 187
- 8.2 实现一个简单表 188
- 8.2.1 设计视图 188
- 8.2.2 实现控制器 190
- 8.2.3 添加一个图像 193
- 8.2.4 表视图单元样式 194
- 8.2.5 设置缩进级别 197
- 8.2.6 处理行的选择 197
- 8.2.7 更改字体大小和行高 199
- 8.3 定制表视图单元 200
- 8.4 实现自定义表视图应用程序 201
- 8.4.1 创建 UITableViewCell 子类 201
- 8.4.2 从 XIB 文件加载 UITableViewCell 205
- 8.5 分组分区和索引分区 210
- 8.5.1 构建视图 210
- 8.5.2 导入数据 211
- 8.5.3 实现控制器 212
- 8.5.4 添加索引 214
- 8.5.5 添加搜索栏 215
- 8.5.6 视图调试器 220
- 8.6 小结 222
- 第 9 章 表视图中的导航控制器 223
- 9.1 导航控制器基础 223
- 9.1.1 栈的概念 223
- 9.1.2 控制器栈 224
- 9.2 简单的字体浏览器:Fonts 225
- 9.2.1 Fonts应用的子控制器 225
- 9.2.2 Fonts应用的基础框架 227
- 9.2.3 创建根视图控制器 230
- 9.2.4 初始化 storyboard 232
- 9.2.5 第一个子控制器:字体列表视图 233
- 9.2.6 设计字体列表的 storyboard 235
- 9.3 创建字体尺寸视图控制器 237
- 9.3.1 设计字体尺寸视图控制器的storyboard 238
- 9.3.2 对字体列表视图控制器的转场进行设置 238
- 9.3.3 创建字体信息视图控制器 239
- 9.3.4 设计字体信息视图控制器的storyboard 240
- 9.3.5 调整字体列表视图控制器的转场 243
- 9.3.6 我的收藏字体 244
- 9.3.7 补充功能 244
- 9.3.8 实现轻扫删除 244
- 9.3.9 实现拖动排序 246
- 9.4 小结 247
- 第 10 章 集合视图 248
- 10.1 创建 DialogViewer项目 248
- 10.1.1 配置自定义单元 249
- 10.1.2 配置视图控制器 252
- 10.1.3 提供内容单元 252
- 10.1.4 实现流动布局 254
- 10.1.5 实现标题视图 255
- 10.2 小结 257
- 第 11 章 iPad 应用中的分割视图和浮动窗口 258
- 11.1 创建基于 UISplitViewController 的分割视图应用程序 260
- 11.1.1 在 storyboard 中定义结构 262
- 11.1.2 使用代码定义功能 263
- 11.1.3 Master-Detail 模板应用程序的工作原理 266
- 11.1.4 添加总统信息 268
- 11.1.5 创建浮动窗口 272
- 11.2 小结 277
- 第 12 章 应用设置和用户默认设置 278
- 12.1 设置捆绑包入门 278
- 12.2 Bridge Control应用程序 279
- 12.2.1 创建项目 282
- 12.2.2 使用设置捆绑包 283
- 12.2.3 读取应用中的设置 295
- 12.2.4 在应用中修改默认设置 298
- 12.2.5 注册默认值 300
- 12.2.6 保证设置有效 300
- 12.2.7 切换到 Settings应用程序 302
- 12.3 小结 303
- 第 13 章 数据持久化基础知识 304
- 13.1 应用程序的沙盒 304
- 13.1.1 获取 Documents和 Library 目录 307
- 13.1.2 获取临时目录 308
- 13.2 文件保存方案 308
- 13.2.1 单文件持久化 308
- 13.2.2 多文件持久化 309
- 13.3 属性列表 309
- 13.3.1 属性列表序列化 309
- 13.3.2 创建 Persistence 应用程序的第一个版本 310
- 13.4 对模型对象进行归档 314
- 13.4.1 遵循 NSCoding 协议 314
- 13.4.2 实现 NSCopying 协议 315
- 13.4.3 对数据对象进行归档和取消归档 316
- 13.4.4 归档应用 316
- 13.4.5 使用 iOS嵌入的 SQLite3 318
- 13.4.6 创建或打开数据库 319
- 13.4.7 使用绑定变量 320
- 13.5 创建 SQLite3应用程序 321
- 13.6 使用 Core Data 325
- 13.6.1 实体和托管对象 326
- 13.6.2 Core Data应用 329
- 13.6.3 修改 AppDelegate.swift 文件 332
- 13.7 小结 338
- 第 14 章 文档和 iCloud 339
- 14.1 使用 UIDocument 管理文档存储 340
- 14.1.1 构建 TinyPix 340
- 14.1.2 创建 TinyPixDocument 类 340
- 14.1.3 主控制器代码 342
- 14.1.4 设置 storyboard 348
- 14.1.5 创建 TinyPix 视图的类 350
- 14.1.6 设计 storyboard的详情视图 353
- 14.2 添加 iCloud支持 356
- 14.2.1 创建配置描述文件 356
- 14.2.2 如何查询 359
- 14.2.3 保存位置 360
- 14.2.4 将偏好设置保存到 iCloud 361
- 14.3 小结 363
- 第 15 章 用 Grand Central Dispatch 进行多线程编程 364
- 15.1 创建 SlowWorker 应用程序 365
- 15.1.1 线程基础知识 367
- 15.1.2 工作单元 368
- 15.1.3 GCD:底层队列 368
- 15.1.4 改进 SlowWorker 369
- 15.2 后台处理 372
- 15.3 应用生命周期 373
- 15.4 状态更改通知 373
- 15.4.1 创建 State Lab 项目 374
- 15.4.2 探索执行状态 375
- 15.4.3 利用执行状态更改 376
- 15.4.4 处理不活跃状态 377
- 15.4.5 处理后台状态 380
- 15.4.6 进入后台时保存状态 382
- 15.5 小结 385
- 第 16 章 图形与绘制 386
- 16.1 Quartz 2D 基础概念 386
- 16.2 Quartz 2D 绘图方法 387
- 16.2.1 Quartz 2D 图形环境 387
- 16.2.2 坐标系统 388
- 16.2.3 指定颜色 389
- 16.2.4 在环境中绘制图像 390
- 16.2.5 绘制形状:多边形、直线和曲线 390
- 16.2.6 Quartz 2D 样例:图案、渐变色、虚线图 391
- 16.3 QuartzFun 应用程序 392
- 16.3.1 构建 QuartzFun应用程序 392
- 16.3.2 添加 Quartz 2D绘制代码 398
- 16.3.3 优化 QuartzFun应用程序 402
- 16.4 小结 404
- 第 17 章 SpriteKit 制作简单游戏 405
- 17.1 创建 TextShooter应用 405
- 17.1.1 自定义初始场景 408
- 17.1.2 玩家移动 411
- 17.1.3 创建敌人 415
- 17.1.4 在场景中加入敌人 416
- 17.1.5 开始射击 417
- 17.1.6 物理攻击敌人 420
- 17.1.7 完成关卡 421
- 17.1.8 自定义碰撞 423
- 17.1.9 粒子系统 426
- 17.1.10 向场景中加入粒子 428
- 17.1.11 游戏结束 430
- 17.1.12 创建开始场景 432
- 17.1.13 添加音效 434
- 17.1.14 添加力场:为游戏提高一些难度 434
- 17.2 小结 437
- 第 18 章 轻点、触摸和手势 438
- 18.1 多点触控术语 438
- 18.2 响应者链 439
- 18.2.1 响应事件 439
- 18.2.2 转发事件:保持响应者链的活动状态 440
- 18.3 多点触控体系结构 440
- 18.4 4个手势通知方法 440
- 18.5 TouchExplorer应用 441
- 18.5.1 创建 Swipes应用程序 445
- 18.5.2 使用触摸事件检测轻扫 445
- 18.5.3 自动手势识别 447
- 18.5.4 实现多指轻扫 448
- 18.5.5 检测多次轻点 450
- 18.5.6 检测捏合和旋转 453
- 18.6 小结 456
- 第 19 章 确定位置 457
- 19.1 位置管理器 457
- 19.1.1 设置期望精度 457
- 19.1.2 设置距离筛选器 458
- 19.1.3 获取使用定位服务的权限 458
- 19.1.4 启动位置管理器 458
- 19.1.5 合理使用位置管理器 458
- 19.2 位置管理器委托 459
- 19.2.1 获取位置更新 459
- 19.2.2 使用 CLLocation 获取纬度和经度 459
- 19.2.3 错误通知 461
- 19.3 创建 WhereAmI应用程序 461
- 19.3.1 更新位置管理器 465
- 19.3.2 将移动路线展现在地图上 467
- 19.3.3 更改定位服务权限 470
- 19.4 小结 471
- 第 20 章 设备方向与动作 472
- 20.1 加速计物理特性 472
- 20.2 陀螺仪旋转特性 473
- 20.3 Core Motion和动作管理器 473
- 20.3.1 创建 MotionMonitor 应用程序 473
- 20.3.2 主动动作访问 476
- 20.3.3 陀螺仪和方位结果 478
- 20.3.4 加速计结果 479
- 20.4 检测摇动 480
- 20.4.1 内嵌的摇动检测 480
- 20.4.2 摇动与破碎 480
- 20.5 将加速计用作方向控制器 482
- 20.5.1 Ball应用程序 482
- 20.5.2 实现 BallView 类 484
- 20.5.3 计算弹珠运动 486
- 20.6 小结 488
- 第 21 章 摄像头和照片图库 489
- 21.1 图像选取器和 UIImagePickerController 489
- 21.1.1 图像选取器控制器 489
- 21.1.2 实现图像选取器控制器委托 491
- 21.2 设计 Camera 界面 492
- 21.2.1 隐私选项 494
- 21.2.2 实现摄像头视图控制器 495
- 21.3 小结 498
- 第 22 章 本地化翻译应用 499
- 22.1 本地化体系结构 499
- 22.2 字符串文件 500
- 22.2.1 字符串文件的格式 500
- 22.2.2 本地化的字符串函数 501
- 22.3 创建 LocalizeMe 应用 502
- 22.3.1 本地化项目 505
- 22.3.2 本地化 storyboard 508
- 22.3.3 创建并本地化字符串文件 512
- 22.3.4 应用显示名称的本地化 516
- 22.3.5 添加其他本地化 517
- 22.4 小结 517
- 22.5 全书总结 518
- 附录 A Swift 简介 519