●章 iOS开发入门 11.1 iOS系统介绍 11.1.1 iOS发展史 11.1.2 全新的版本——iOS 10 11.2 开始iOS 10开发之旅 21.3 工欲善其事,必先利其器——搭建开发环境 41.3.1 Xcode 介绍 41.3.2 并安装Xcode 8 51.3.3 创建iOS 10项目并启动模拟器 61.3.4 打开一个现有的iOS 10项目 91.4 iOS 10中的常用开发框架 91.4.1 Foundation框架简介 101.4.2 Cocoa框架简介 111.4.3 iOS程序框架 12第2章 使用Xcode开发环境详解 132.1 基本面板介绍 132.1.1 调试工具栏 142.1.2 导航面板介绍 142.1.3 检查器面板 172.2 Xcode 8的基本操作 182.2.1 改变公司名称 182.2.2 通过搜索框缩小文件范围 182.2.3 格式化代码 192.2.4 代码缩进和自动完成 202.2.5 文件内查找和替代 202.2.6 快速定位到代码行 222.2.7 快速打开文件 222.2.8 自定义导航条 232.2.9 使用Xcode帮助 242.2.10 调试代码 242.3 使用Xcode 8帮助系统 25第3章 Objective-C语言基础 283.1 最耀眼的新星 283.1.1 究竟何为Objective-C 283.1.2 为什么选择Objective-C 283.2 Objective-C的优点及缺点 293.3 一个简单的例子 293.3.1 使用Xcode编辑代码 303.3.2 基本素介绍 313.4 数据类型和常量 353.4.1 int类型 363.4.2 float类型 373.4.3 double类型 373.4.4 char类型 383.4.5 字符常量 393.4.6 id类型 403.4.7 限定词 413.4.8 总结基本数据类型 433.5 字符串 433.6 算数表达式 443.6.1 运算符的优先级 443.6.2 整数运算和一负号运算符 453.6.3 模运算符 463.6.4 整型值和浮点值的相互转换 473.6.5 类型转换运算符 483.7 表达式 483.7.1 常量表达式 483.7.2 条件运算符 493.7.3 sizeof运算符 493.7.4 关系运算符 503.7.5 强制类型转换运算符 503.8 位运算符 513.8.1 按位与运算符 513.8.2 按位或运算符 523.8.3 按位异或运算符 523.8.4 一次求反运算符 533.8.5 向左移位运算符 543.8.6 向右移位运算符 543.8.7 总结Objective-C的运算符 55第4章 Swift语言基础 564.1 Swift概述 564.1.1 Swift的创造者 564.1.2 Swift的优势 564.1.3 最新的Swift 3.0 584.2 数据类型和常量 584.2.1 int类型 594.2.2 float类型 594.2.3 double类型 594.2.4 char类型 594.2.5 字符常量 594.3 变量和常量 604.3.1 常量详解 604.3.2 变量详解 604.4 字符串和字符 614.4.1 字符串字面量 624.4.2 初始化空字符串 624.4.3 字符串可变性 624.4.4 值类型字符串 634.4.5 计算字符数量 634.4.6 连接字符串和字符 644.4.7 字符串插值 644.4.8 比较字符串 644.4.9 Unicode 654.5 流程控制 674.5.1 for循环(1) 684.5.2 for循环(2) 694.5.3 while循环 694.6 条件语句 704.6.1 if语句 704.6.2 switch语句 714.7 函数 724.7.1 函数的声明与调用 724.7.2 函数的参数和返回值 734.8 实战演练——使用Xcode创建Swift程序 75第5章 Cocoa Touch框架 775.1 Cocoa Touch基础 775.1.1 Cocoa Touch概述 775.1.2 Cocoa Touch中的框架 785.1.3 Cocoa Touch的优势 785.2 iPhone的技术层 785.2.1 Cocoa Touch层 795.2.2 多媒体层 825.2.3 核心服务层 835.2.4 核心OS层 845.3 Cocoa Touch中的框架 845.3.1 Core Animation(图形处理)框架 845.3.2 Core Audio(音频处理)框架 855.3.3 Core Data(数据处理)框架 865.4 Cocoa中的类 875.4.1 核心类 875.4.2 数据类型类 885.4.3 UI界面类 905.5 国际化 915.6 使用Xcode学习iOS框架 925.6.1 使用Xcode文档 925.6.2 快速帮助 93第6章 Xcode Interface Builder界面开发 956.1 Interface Builder基础 956.2 和Interface Builder密切相关的库面板 976.3 Interface Builder采用的方法 986.4 Interface Builder中的故事板——Storyboarding 986.4.1 推出的背景 986.4.2 故事板的文档大纲 996.4.3 文档大纲的区域对象 1006.5 创建一个界面 1016.5.1 对象库 1016.5.2 将对象加入到视图中 1026.5.3 使用IB布局工具 1026.6 定制界面外观 1056.6.1 使用属性检查器 1056.6.2 设置辅助功能属性 1056.6.3 测试界面 1066.7 iOS 10控件的属性 1076.8 实战演练——将设计界面连接到代码(双语实现:Objective-C版) 1076.8.1 打开项目 1076.8.2 输出口和操作 1086.8.3 创建到输出口的连接 1096.8.4 创建到操作的连接 1106.9 实战演练——将设计界面连接到代码(双语实现:Swift版) 1116.10 实战演练——纯代码实现UI设计 112第7章 使用Xcode编写MVC程序 1157.1 MVC模式基础 1157.1.1 分析结构 1157.1.2 MVC的特点 1167.2 Xcode中的MVC 1167.2.1 原理 1167.2.2 模板就是给予MVC的 1177.3 在Xcode中实现MVC 1177.3.1 视图 1187.3.2 视图控制器 1187.4 数据模型 1197.5 实战演练——使用模板Single View Application创建MVC程序(双语实现:Objective-C版) 1207.5.1 创建项目 1207.5.2 规划变量和连接 1227.5.3 设计界面 1247.5.4 创建并连接输出口和操作 1257.5.5 实现应用程序逻辑 1277.5.6 生成应用程序 1277.6 实战演练——使用模板Single View Application创建MVC程序(双语实现:Swift版) 127第8章 文本框和文本视图 1298.1 文本框(UITextField) 1298.1.1 文本框基础 1298.1.2 实战演练——控制是否显示TextField中信息 1298.1.3 实战演练——实现用户登录框界面 1318.1.4 实战演练——限制输入文本的长度 1328.1.5 实战演练——实现一个UITextField控件(Swift版) 1338.2 文本视图(UITextView) 1348.2.1 文本视图基础 1348.2.2 实战演练——拖动输入的文本 1358.2.3 实战演练——自定义设置文字的行间距 1368.2.4 实战演练——自定义 UITextView 控件的样式 1378.2.5 实战演练——在指定的区域中输入文本(Swift版) 1388.2.6 实战演练——通过文本提示被单击的按钮(双语实现:Objective-C版) 1398.2.7 实战演练——在屏幕中显示被单击的按钮(双语实现:Swift版) 140第9章 按钮和标签 1419.1 标签(UILabel) 1419.1.1 标签(UILabel)的属性 1419.1.2 实战演练——使用UILabel显示一段文本 1419.1.3 实战演练——为文字分别添加上划线、下划线和中划线 1439.1.4 实战演练——显示被触摸单词的字母 1449.1.5 实战演练——显示一个指定样式的文本(Swift版) 1459.2 按钮(UIButton) 1469.2.1 按钮基础 1469.2.2 实战演练——自定义设置按钮的图案 1479.2.3 实战演练——实现了一个变换形状动画按钮 1499.3 实战演练——联合使用文本框、文本视图和按钮(双语实现:Objective-C版) 1509.3.1 创建项目 1509.3.2 设计界面 1519.3.3 创建并连接输出口和操作 1559.3.4 实现按钮模板 1569.3.5 隐藏键盘 1589.3.6 实现应用程序逻辑 1599.3.7 总结执行 1609.4 实战演练——联合使用文本框、文本视图和按钮(双语实现:Swift版) 1609.5 实战演练——自定义一个按钮(Swift版) 1610章 滑块、步进和图像 16310.1 滑块控件(UISlider) 16310.1.1 Slider控件的基本属性 16310.1.2 实战演练——使用素材图片实现滑动条特效 16410.1.3 实战演练——实现自动显示刻度的滑动条 16510.1.4 实战演练——实现各种各样的滑块 16610.1.5 实战演练——自定义实现UISlider控件功能(Swift版) 16810.2 步进控件(UIStepper) 16910.2.1 步进控件介绍 16910.2.2 实战演练——自定义步进控件的样式 17010.2.3 实战演练——设置指定样式的步进控件 17110.2.4 实战演练——使用步进控件自动增减数字(Swift版) 17310.3 图像视图控件(UIImageView) 17310.3.1 UIImageView的常用操作 17410.3.2 实战演练——实现图像的模糊效果 17410.3.3 实战演练——滚动浏览图片 17610.3.4 实战演练——实现一个图片浏览器 17710.3.5 实战演练——使用UIImageView控件(Swift版) 1791章 开关控件和分段控件 18111.1 开关控件(UISwitch) 18111.1.1 开关控件基础 18111.1.2 实战演练——改变UISwitch的文本和颜色 18111.1.3 实战演练——显示具有开关状态的开关 18211.1.4 实战演练——联合使用UISlider与UISwitch控件 18311.1.5 实战演练——控制是否显示密码明文(Swift版) 18511.2 分段控件(UISegmentedControl) 18611.2.1 分段控件的属性和方法 18611.2.2 实战演练——使用 UISegmentedControl控件 18711.2.3 实战演练——添加图标和文本 18911.2.4 实战演练——使用分段控件控制背景颜色 19111.2.5 实战演练——使用UISegmentedControl控件(Swift版) 19211.3 实战演练——联合使用开关控件和分段控件(双版实现:Objective-C版) 19211.4 实战演练——联合使用开关控件和分段控件(双版实现:Swift版) 1942章 Web视图控件、可滚动视图控件和翻页控件 19612.1 Web视图(UIWebView) 19612.1.1 Web视图基础 19612.1.2 实战演练——在UIWebView控件中调用JavaScript 脚本 19712.1.3 实战演练——使用滑动条动态改变字体的大小 19812.1.4 实战演练——实现一个迷你浏览器工具 20012.1.5 实战演练——使用UIWebView控件加载网页(Swift版) 20112.2 可滚动的视图(UIScrollView) 20312.2.1 UIScrollView的基本用法 20312.2.2 实战演练——使用可滚动视图控件 20412.2.3 实战演练——滑动隐藏状态栏 20712.2.4 实战演练——使用UIScrollView控件(Swift版) 20812.3 翻页控件(UIPageControl) 20912.3.1 PageControll控件基础 21012.3.2 实战演练——自定义 UIPageControl 控件的外观样式 21012.3.3 实战演练——实现一个图片播放器 21212.3.4 实战演练——实现一个图片浏览程序 21312.3.5 实战演练——使用UIPageControl控件设置4个界面(Swift版) 21412.4 实战演练——联合使用开关、分段控件和Web视图控件(双语实现:Objective-C版) 21612.4.1 创建项目 21612.4.2 设计界面 21712.4.3 创建并连接输出口和操作 21912.4.4 实现应用程序逻辑 22112.4.5 调试运行 22312.5 实战演练——联合使用开关、分段控件和Web视图控件(双语实现:Swift版) 2233章 提醒和操作表 22513.1 UIAlertController基础 22513.1.1 提醒视图 22513.1.2 操作表基础 22513.2 使用UIAlertController 22513.2.1 一个简单的对话框例子 22613.2.2 “警告”样式 22713.2.3 文本对话框 22713.2.4 上拉菜单 22913.2.5 释放对话框控制器 23113.3 实战演练 23113.3.1 实战演练——实现一个自定义操作表视图 23113.3.2 实战演练——分别自定义实现提醒表视图和操作表视图 23213.3.3 实战演练——自定义UIAlertController控件的外观 23413.3.4 实战演练——实现一个提醒框效果(Swift版) 2364章 工具栏、日期选择器 23714.1 工具栏(UIToolbar) 23714.1.1 工具栏基础 23714.1.2 实战演练——联合使用UIToolBar和UIView 23814.1.3 实战演练——自定义UIToolBar控件的颜色和样式 24014.1.4 实战演练——创建一个带有图标按钮的工具栏 24314.1.5 使用UIToolbar制作一个网页浏览器(Swift版) 24514.2 选择器视图(UIPickerView) 24714.2.1 选择器视图基础 24714.2.2 实战演练——实现两个UIPickerView控件间的数据依赖 24814.2.3 实战演练——自定义一个选择器(双语实现:Objective-C实现) 25114.2.4 实战演练——自定义一个选择器(双语实现:Swift版) 25814.2.5 实战演练——实现一个单列选择器 26014.2.6 实战演练——实现一个“星期”选择框 26114.3 日期选择控件(UIDatePicker) 26214.3.1 UIDatePicker基础 26314.3.2 实战演练——使用UIDatePicker控件(Swift版) 26514.3.3 实战演练——实现一个日期选择器 26614.3.4 实战演练——使用日期选择器自动选择一个时间 2725章 表视图(UITable) 27415.1 表视图基础 27415.1.1 表视图的外观 27415.1.2 表单格 27415.1.3 添加表视图 27515.1.4 UITableView详解 27615.2 实战演练 27815.2.1 实战演练——自定义UITableViewCell 27815.2.2 实战演练——实现一个图文样式列表效果 28215.2.3 实战演练——在表视图中动态操作单格(Swift版) 28515.2.4 实战演练——拆分表视图(双语实现:Objctive-C版) 28715.2.5 实战演练——拆分表视图(双语实现:Swift版) 2886章 活动指示器、进度条和检索条 29016.1 活动指示器(UIActivityIndicatorView) 29016.1.1 活动指示器基础 29016.1.2 实战演练——自定义UIActivityIndicatorView控件的样式 29016.1.3 实战演练——自定义活动指示器的显示样式 29316.1.4 实战演练——实现不同外观的活动指示器效果 29616.1.5 实战演练——使用UIActivityIndicatorView控件(Swift版) 29716.2 进度条(UIProgressView) 29816.2.1 进度条基础 29816.2.2 实战演练——自定义进度条的外观样式 29816.2.3 实战演练——实现多个具有动态条纹背景的进度条 29916.2.4 实战演练——自定义一个指定外观样式的进度条 30216.2.5 实战演练——实现自定义进度条效果(Swift版) 30616.3 检索条(UISearchBar) 30816.3.1 检索条基础 30816.3.2 实战演练——在查找信息输入关键字时实现自动提示功能 30916.3.3 实战演练——实现文字输入的自动填充和自动提示功能 31316.3.4 实战演练——使用检索控件快速搜索信息 31416.3.5 实战演练——使用UISearchBar控件(Swift版) 31616.3.6 实战演练——在表视图中实现信息检索(双语实现:Objective-C版) 31816.3.7 实战演练——在表视图中实现信息检索(双语实现:Swift版) 3217章 UIView详解 32317.1 UIView基础 32317.1.1 UIView的结构 32317.1.2 视图架构 32517.1.3 视图层次和子视图管理 32617.1.4 视图绘制周期 32617.1.5 UIView的常见应用 32617.2 实战演练 32717.2.1 实战演练—给任意UIView视图四条边框加上阴影 32717.2.2 实战演练——给UIView加上各种圆角、边框效果 32917.2.3 实战演练——使用UIView控件实现出式动画表单效果 33317.2.4 实战演练——创建一个滚动图片浏览器(Swift版) 33517.2.5 实战演练——创建一个产品展示列表(双语实现:Objctive-C版) 33617.2.6 实战演练——创建一个产品展示列表(双语实现:Swift版) 3378章 视图控制器 33918.1 导航控制器(UIViewController)基础 33918.1.1 UIViewController的常用属性和方法 33918.1.2 实战演练——实现可以移动切换的视图效果 34018.1.3 实战演练——实现手动旋转屏幕的效果 34318.2 使用UINavigationController 34418.2.1 UINavigationController详解 34518.2.2 实战演练——实现一个界面导航条功能 34618.2.3 实战演练——创建主从关系的“主-子”视图(Swift版) 34918.2.4 实战演练——使用导航控制器展现3个场景(双语实现:Objective-C版) 35018.2.5 实战演练——使用导航控制器展现3个场景(双语实现:Objective-C版) 35418.3 选项卡栏控制器 35418.3.1 选项卡栏和选项卡栏项 35518.3.2 实战演练——使用选项卡栏控制器构建3个场景 35718.3.3 实战演练——使用动态单格定制表格行 36218.3.4 开发一个界面选择控制器(Swift版) 3639章 实现多场景和出框 36519.1 多场景故事板 36519.1.1 多场景故事板基础 36519.1.2 创建多场景项目 36619.1.3 实战演练——实现多个视图之间的切换 37019.1.4 实战演练——使用第二个视图来编辑个视图中的信息(双语实现:Objective-C版) 37519.1.5 实战演练——使用第二个视图来编辑个视图中的信息(双语实现:Swift版) 379第20章 UICollectionView和UIVisualEffectView控件 38120.1 UICollectionView控件详解 38120.1.1 UICollectionView的构成 38120.1.2 实现一个简单的UICollectionView 38220.1.3 自定义的UICollectionViewLayout 38520.1.4 实战演练——使用UICollectionView控件实现网格效果 38620.1.5 实战演练——实现大小不相同的网格效果 38820.1.6 实战演练——实现Pinterest样式的布局效果(Swift版) 39120.2 UIVisualEffectView控件详解 39320.2.1 UIVisualEffectView基础 39320.2.2 使用VisualEffectView控件实现模糊特效 39520.2.3 使用VisualEffectView实现Vibrancy效果 39520.2.4 实战演练——在屏幕中实现模糊效果 39720.2.5 实战演练——在屏幕中实现遮罩效果 39920.2.6 实战演练——编码实现指定图像的模糊效果(Swift版) 400第21章 iPad出框和分割视图控制器 40321.1 iPad出框控制器(UIPopoverPresentationController) 40321.1.1 创建出框 40321.1.2 创建出切换 40321.1.3 实战演练——出模态视图 40521.1.4 实战演练——出模态视图 40621.2 探索分割视图控制器 40721.2.1 分割视图控制器基础 40821.2.2 实战演练——使用表视图(双语实现:Objective-C版) 41021.2.3 实战演练——使用表视图(双语实现:Swift版) 41421.2.4 实战演练——创建基于主从关系的分割视图(Swift版本) 416第22章 界面旋转、大小和全屏处理 41722.1 启用界面旋转 41722.1.1 界面旋转基础 41722.1.2 实战演练——实现界面自适应(Swift版) 41822.1.3 实战演练——设置界面实现自适应(双语实现:Objective-C版) 41922.1.4 实战演练——设置界面实现自适应(双语实现:Swift版) 42022.2 设计可旋转和可调整大小的界面 42022.2.1 自动旋转和自动调整大小 42022.2.2 调整框架 42122.2.3 切换视图 42122.2.4 实战演练——使用Interface Builder创建可旋转和调整大小的界面 42122.2.5 实战演练——在旋转时调整控件 42422.2.6 实战演练——旋转时切换视图 42822.2.7 实战演练——实现屏幕视图的自动切换(Swift版) 430第23章 图形、图像、图层和动画 43223.1 图形处理 43223.1.1 iOS的绘图机制 43223.1.2 实战演练——在屏幕中绘制一个三角形 43323.1.3 实战演练——使用CoreGraphic实现绘图操作 43423.2 图像处理 43623.2.1 实战演练——实现颜色选择器/调色板功能 43623.2.2 实战演练——在屏幕中绘制一个图像 43723.3 图层 43823.3.1 视图和图层 43823.3.2 实战演练——实现图片、文字以及翻转效果 43823.3.3 实战演练——滑动展示不同的图片 43923.3.4 实战演练——演示CALayers图层的用法(Swift版) 44023.4 实现动画 44123.4.1 UIImageView动画 44123.4.2 视图动画UIView 44123.4.3 Core Animation详解 44523.4.4 实战演练——实现UIView分类动画效果 44623.4.5 实战演练——动画样式显示电量使用情况 44823.4.6 实战演练——图形图像的人脸检测处理(Swift版) 45023.4.7 实战演练——联合使用图像动画、滑块和步进控件(双语实现:Objective-C版) 45223.4.8 实战演练——联合使用图像动画、滑块和步进控件(双语实现:Swift版) 461第24章 多媒体开发 46324.1 使用AudioToolbox框架 46324.1.1 声音服务基础 46324.1.2 实战演练——播放指定的声音文件 46424.1.3 实战演练——播放任意位置的音频 46524.2 提醒和振动 46524.2.1 播放提醒音 46624.2.2 实战演练——实现两种类型的振动效果(Swift版) 46624.2.3 实战演练——实用iOS的提醒功能 46724.3 AV Foundation框架 47524.3.1 准备工作 47524.3.2 使用AV音频播放器 47524.3.3 实战演练——使用AV Foundation框架播放视频 47624.3.4 实战演练——使用AVAudioPlayer播放和暂停指定的MP3播放(Swift版) 47724.3.5 实战演练——使用AVKit框架播放列表中的视频 47724.3.6 实战演练——使用AVKit框架播放本地视频 47924.3.7 实战演练——使用AVKit框架播放网络视频 48024.4 图像选择器(UIImagePickerController) 48124.4.1 使用图像选择器 48124.4.2 实战演练——获取照片库的图片 481第25章 分屏多任务 48425.1 分屏多任务基础 48425.1.1 分屏多任务的开发环境 48425.1.2 Slide Over和Split View基础 48525.1.3 画中画 48725.2 实战演练 48725.2.1 实战演练——使用SlideOver多任务(Swift版) 48725.2.2 实战演练——使用SplitView多任务(Swift版) 49125.2.3 实战演练——开发一个分割多视图浏览器(Swift版) 496第26章 定位处理 49926.1 iOS模拟器调试定位程序的方法 49926.2 Core Location框架 50026.2.1 Core Location基础 50026.2.2 使用流程 50126.2.3 实战演练——定位显示当前的位置信息(Swift版) 50326.3 获取位置 50626.3.1 位置管理器委托 50626.3.2 获取航向 50726.3.3 实战演练——定位当前的位置信息 50826.4 加入地图功能 51026.4.1 Map Kit基础 51026.4.2 为地图添加标注 51126.4.3 实战演练——在地图中定位当前的位置信息(Swift版) 51226.4.4 实战演练——在地图中绘制导航线路 51326.5 实战演练——创建一个支持定位的应用程序(双语实现:Objective-C版) 51526.5.1 创建项目 51626.5.2 设计视图 51726.5.3 创建并连接输出口 51726.5.4 实现应用程序逻辑 51726.5.5 生成应用程序 51926.6 实战演练——创建一个支持定位的应用程序(双语实现:Swift版) 52026.7 实战演练——实现地图定位(双语实现:Objective-C版) 52026.8 实战演练——实现地图定位(双语实现:Swift版) 522第27章 读写应用程序数据 52327.1 iOS应用程序和数据存储 52327.2 用户默认设置 52427.3 设置束 52427.3.1 设置束基础 52427.3.2 实战演练——通过隐式首选项实现一个手电筒程序(双语实现:Objective-C版) 52627.3.3 实战演练——通过隐式首选项实现一个手电筒程序(双语实现:Swift版) 52927.4 直接访问文件系统 52927.4.1 应用程序数据的存储位置 53027.4.2 获取文件路径 53027.4.3 读写数据 53127.4.4 读取和写入文件 53227.4.5 通过plist文件存取文件 53327.4.6 保存和读取文件 53427.4.7 文件共享和文件类型 53427.4.8 实战演练——实现一个用户信息收集器(双语实现:Objective-C版) 53527.4.9 实战演练——实现一个用户信息收集器(双语实现:Swift版) 53927.5 核心数据(Core Data) 53927.5.1 Core Data基础 54027.5.2 实战演练——使用CoreData 动态添加、删除数据 54127.6 互联网数据 54227.6.1 XML和JSON 54327.6.2 实战演练——使用JSON获取网站中的照片信息 545第28章 触摸、手势识别和Force Touch 54928.1 多点触摸和手势识别基础 54928.2 触摸处理 55028.2.1 触摸事件和视图 55028.2.2 iOS中的手势操作 55228.2.3 实战演练——触摸的方式移动视图 55328.2.4 实战演练——触摸挪动彩色方块(Swift版) 55328.3 手势处理 55728.3.1 手势处理基础 55728.3.2 实战演练——识别手势并移动屏幕中的方块(Swift版) 56128.3.3 实战演练——实现一个手势识别器(双语实现:Objective-C版) 56328.3.4 实战演练——实现一个手势识别器(双语实现:Swift版) 57028.4 全新感应功能——Force Touch(3D Touch)技术 57028.4.1 Force Touch介绍 57028.4.2 Force Touch APIs介绍 57128.4.3 实战演练——使用Force Touch 57128.4.4 实战演练——启动Force Touch触控面板 57328.4.5 实战演练——为应用程序添加3D Touch手势(Swift版) 574第29章 和硬件之间的操作 57629.1 加速计和陀螺仪 57629.1.1 加速计基础 57629.1.2 陀螺仪 57829.1.3 实战演练——使用Motion传感器(Swift版) 57929.1.4 实战演练——检测倾斜和旋转(双语实现:Objective-C版) 58029.1.5 实战演练——检测倾斜和旋转(双语实现:Swift版) 58529.2 访问朝向和运动数据 58629.2.1 两种方法 58629.2.2 实战演练——检测当前设备的朝向(双语实现:Objective-C版) 58729.2.3 实战演练——检测当前设备的朝向(双语实现:Swift版) 58929.3 实战演练——传感器综合练习(Swift版) 590第30章 地址簿、邮件、Twitter和短消息 59930.1 Contacts Framework框架 59930.1.1 Contacts框架的主要构成类 59930.1.2 使用Contact框架 60030.1.3 实战演练——使用Contacts框架获取通信录信息 60030.2 Message UI电子邮件 60230.2.1 Message UI基础 60230.2.2 实战演练——使用Message UI发送邮件(Swift版) 60330.3 使用Twitter发送推特信息 60430.3.1 Twitter基础 60530.3.2 实战演练——开发一个Twitter客户端(Swift版) 60530.4 实战演练——联合使用地址簿、电子邮件、Twitter和地图 60730.4.1 创建项目 60730.4.2 设计界面 60830.4.3 创建并连接输出口和操作 60830.4.4 实现通信录逻辑 60930.4.5 实现地图逻辑 60930.4.6 实现电子邮件逻辑 61030.4.7 实现Twitter逻辑 61030.4.8 调试运行 61030.5 使用iOS 10全新框架——Messages.framework框架 61130.5.1 Messages.framework框架介绍 61130.5.2 实战演练——调用并使用Messages.framework框架 612第31章 开发通用的项目程序 61431.1 开发通用应用程序 61431.1.1 在iOS 6中开发通用应用程序 61431.1.2 在iOS 6+中开发通用应用程序 61531.1.3 图标文件 62231.1.4 启动图像 62231.2 实战演练——使用通用程序模板创建通用应用程序(双语实现:Objective-C版) 62331.2.1 创建项目 62331.2.2 设计界面 62331.2.3 创建并连接输出口 62431.2.4 实现应用程序逻辑 62431.3 实战演练——使用通用程序模板创建通用应用程序(双语实现:Swift版) 62531.4 实战演练——使用视图控制器 62631.4.1 创建项目 62631.4.2 设计界面 62731.4.3 创建并连接输出口 62731.4.4 实现应用程序逻辑 62731.4.5 生成应用程序 62731.5 实战演练——使用多个目标 62831.5.1 将iPhone目标转换为iPad目标 62931.5.2 将iPad目标转换为iPhone目标 62931.6 实战演练——创建基于“主—从”视图的应用程序 62931.6.1 创建项目 63031.6.2 调整iPad界面 63131.6.3 调整iPhone界面 63231.6.4 实现应用程序数据源 63231.6.5 实现主视图控制器 63431.6.6 实现细节视图控制器 63631.6.7 调试运行 637第32章 推服务和多线程 63832.1 推服务 63832.1.1 推服务介绍 63832.1.2 推服务的机制 63932.1.3 iOS 10中 PushNotificationIOS远程推送的主要方法 63932.1.4 在iOS 10中实现远程推送通知的步骤 64032.1.5 实战演练——在iOS 10中发送3种形式的通知 64332.2 多线程 64632.2.1 多线程基础 64632.2.2 iOS中的多线程 64832.2.3 线程的同步与锁 65232.2.4 线程的交互 65332.3 ARC机制 65332.3.1 ARC概述 65432.3.2 ARC中的新规则 65532.4 实战演练——实现后台多线程处理(双语实现:Objective-C版) 65532.5 实战演练——实现后台多线程处理(双语实现:Swift版) 657第33章 Touch ID详解 65833.1 开发Touch ID应用程序 65833.1.1 Touch ID的官方资料 65833.1.2 开发Touch ID应用程序的步骤 65933.2 实战演练——使用Touch ID认证 66033.3 实战演练——使用Touch ID密码和指纹认证 66133.4 实战演练——Touch ID认证的综合演练 666第34章 使用CocoaPods依赖管理 67334.1 使用CocoaPods基础 67334.2 安装CocoaPods 67434.2.1 基本安装 67434.2.2 快速安装 67434.3 使用CocoaPods 67434.3.1 在自己的项目中使用CocoaPods 67534.3.2 为自己的项目创建 podspec 文件 67734.3.3 生成第三方库的帮助文档 67834.4 实战演练——打开一个用CocoaPods管理的开源项目 678第35章 使用扩展(Extension) 68235.1 扩展(Extension)基础 68235.1.1 扩展的周期 68335.1.2 扩展和容器应用的交互 68335.2 实战演练——使用Photo Editing Extension(照片扩展) 68335.3 实战演练——使用TodayExtension(今日提醒扩展) 69035.4 实战演练——使用Action Extension翻译英文 69335.5 实战演练——使用Share Extension扩展实现分享功能 696第36章 游戏开发 70436.1 Sprite Kit框架基础 70436.1.1 Sprite Kit的优点和缺点 70436.1.2 Sprite Kit、Cocos2D、Cocos2D-X和Unity的选择 70436.2 实战演练——开发一个Sprite Kit游戏程序 70536.3 实战演练——开发一个射击游戏(双语实现:Objective-C版) 71336.4 实战演练——开发一个射击游戏(双语实现:Swift版) 720第37章 watchOS 3智能手表开发 72137.1 Apple Watch介绍 72137.2 WatchKit开发详解 72237.2.1 搭建WatchKit开发环境 72237.2.2 WatchKit架构 72337.2.3 WatchKit布局 72437.2.4 Glances和Notifications(快速预览信息) 72537.2.5 Watch App的周期 72537.3 开发Apple Watch应用程序 72637.3.1 创建Watch应用 72737.3.2 创建Glance界面 72737.3.3 自定义通知界面 72737.3.4 配置Xcode项目 72737.4 实战演练——实现AppleWatch垂直列表界面布局 73037.5 实战演练——演示AppleWatch的日历事件 73237.6 实战演练——在手表中控制小球的移动 73637.7 实战演练——实现一个倒计时器 737第38章 HealthKit健康应用开发 73938.1 HealthKit基础 73938.1.1 HealthKit介绍 73938.1.2 市面中的HealthKit应用现状 73938.1.3 接入HealthKit的好处 74038.2 HealthKit开发基础 74038.2.1 HealthKit开发要求 74038.2.2 HealthKit开发思路 74138.3 实战演练——读写HealthKit数据信息 74238.4 实战演练——心率检测(Swift版) 74238.5 实战演练——获取行走的步数 74538.6 实战演练——获取步数、跑步距离、体重和身高(Swift版) 746第39章 在程序中加入Siri功能 74839.1 Siri基础 74839.1.1 iOS 10中的Siri 74839.1.2 HomeKit中的Siri指令 74839.2 在iOS 10应用程序中使用Siri 74939.2.1 iOS 10对生态整合与Extension开发的努力 74939.2.2 Siri功能将以Extension扩展的形式存在 75039.2.3 创建Intents Extension 75039.3 实战演练——在健身程序中使用Siri 75539.4 实战演练——在打车程序中使用Siri 758第40章 开发tvOS程序 76040.1 tvOS开发基础 76040.1.1 tvOS系统介绍 76040.1.2 tvOS开发方式介绍 76040.1.3 打开遥控器的模拟器 76140.2 使用Custom App方式 76140.2.1 Custom App方式介绍 76140.2.2 实战演练——开发一个简单的按钮响应程序(Swift版) 76240.2.3 实战演练——开发一个猜谜游戏(Swift版) 76340.2.4 实战演练——在tvOS中使用表视图(Swift版) 76540.2.5 实战演练——开发一个天气预报程序(Swift版) 76740.3 使用TVML Apps方式 76940.3.1 使用TVML Apps方式开发 76940.3.2 实战演练——开发一个可响应的tvOS程序(Swift版) 77940.3.3 实战演练——电影播放列表(Swift版) 784第41章 分屏多视图播放器 78741.1 分屏多视图系统介绍 78741.2 创建工程 78741.3 分屏具体实现 78841.3.1 实现主视图界面 78841.3.2 显示某个视频的基本信息 79241.3.3 播放视频 79341.3.4 播放网页嵌入式视频 797第42章 tvOS电影库系统 79942.1 tvOS电影库系统介绍 79942.2 系统介绍 79942.3 使用Objective-C实现 80242.4 使用Swift实现 80842.5 系统扩展——优酷和土豆视频 809
内容简介
全书共42章,循序渐进地讲解了iOS 10应用开发的知识。本书从搭建开发环境讲起,依次讲解了Objective-C语言基础,Swift语言基础,Cocoa Touch,Xcode Interface Builder界面开发,使用Xcode编写MVC程序,文本框和文本视图,按钮和标签,滑块、步进和图像,使用开关控件和分段控件,Web视图控件和可滚动视图控件,提醒和操作表,工具栏,日期选择器,表视图,活动指示器,进度条和检索条,UIView,视图控制器,实现多场景和出框,iPad出框和分割视图控制器,界面旋转,图形、图像、图层和动画,声音服务,多媒体应用,定位处理,触摸,手势识别和Force Touch,读写应用程序数据,触摸和手势识别,和硬件之间的操作,开发通用的项目程序,推服务和多线程,Touch ID,游戏开发,HealthKit健康应用开发,watchOS 3智能手表开发,分屏多任......