描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302483564丛书名: 移动开发丛书
本书技术先进,注重实战,示例丰富,适合iOS开发新手使用,也很适合作为iOS培训机构的教材或大专院校软件开发课程的教学参考书。
第1章 开发准备 1
1.1
iOS 10新特性简述 2
1.1.1
新增触觉反馈编程接口 2
1.1.2
SiriKit框架的开放 4
1.1.3
引入Messages App 5
1.1.4
通知框架的整合与扩展 6
1.2 熟悉iOS开发环境 6
1.2.1
安装Xcode开发工具 6
1.2.2
了解Xcode开发工具主界面 8
1.2.3
Xcode开发工具的使用技巧及
常用快捷键 9
1.3 创建个iOS项目 10
1.4 使用Git进行项目版本管理 13
1.4.1
Git与Github简介 13
1.4.2
注册GitHub会员 13
1.4.3
使用Xcode创建Git仓库 15
1.4.4
用Xcode建立本地Git仓库与
GitHub代码托管平台的关联 16
第2章 基础UI控件 18
2.1
iOS系统UI框架的介绍 19
2.1.1
MVC设计模式 19
2.1.2
代理设计模式 20
2.2 视图控制器——UIViewController
20
2.2.1
UIViewController的生命周期 20
2.2.2
UIViewController的视图层级
结构 27
2.3 文本控件——UILabel
27
2.3.1
使用UILabel在屏幕上创建
一个标签控件 27
2.3.2
自定义标签控件的相关属性 28
2.3.3
多行显示的UILabel与换行模式 30
2.4 按钮控件——UIButton
32
2.4.1
创建一个按钮改变屏幕颜色 32
2.4.2
更加多彩的UIButton控件 35
2.5 文本输入框控件——UITextField
37
2.5.1
在屏幕上创建一个输入框 37
2.5.2
UITextField的常用属性介绍 39
2.5.3
UITextField的代理方法 40
2.5.4
实现一个监听输入信息的用户名
输入框 41
2.6 开关控件——UISwitch
43
2.6.1
创建一个开关控件 43
2.6.2
为UISiwtch控件添加触发方法 44
2.7 分页控制器——UIPageControl
45
2.8 分段控制器——UISegmentedControl
46
2.8.1
UISegmentedControl基本属性的
应用 46
2.8.2
对UISegmentedControl中的按钮
进行增、删、改操作 48
2.8.3
UISegmentedControl中按钮宽度的
自适应 48
2.9 滑块控件——UISlider
49
2.9.1
UISlider的创建与常规设置 49
2.9.2
对UISlider添加图片修饰 51
2.10
活动指示器控件——
UIActivityIndicatorView 51
2.11
进度条控件——UIProgressView 53
2.12
步进控制器——UIStepper 53
2.12.1
步进控制器的基本属性使用 54
2.12.2
自定义UIStepper按钮图片 55
2.13
选择器控件——UIPickerView 56
2.13.1
创建一个UIPickerView控件 56
2.13.2
UIPickerView选中数据时的
回调代理 58
2.14
通过CALayer对视图进行修饰 59
2.14.1
创建圆角的控件 59
2.14.2
创建带边框的控件 60
2.14.3
为控件添加阴影效果 60
2.15
警告控制器——UIAlertController 61
2.15.1
UIAlertController的警告框 61
2.15.2
UIAlertController之活动列表 64
2.16
扩展篇 65
2.16.1
搜索栏控件——UISearchBar 65
2.16.2
日期时间选择器——
UIDatePicker 69
2.16.3
警告视图——UIAlertView 71
2.16.4
活动列表——UIActionSheet 72
2.17
实战:登录注册界面的搭建 73
第3章 高级UI控件 80
3.1 导航控制器——UINavigationController
81
3.1.1
导航控制器的工作原理 81
3.1.2
使用导航控制器进行多界面
搭建 82
3.1.3
导航栏UINavigationBar 85
3.1.4
导航按钮UIBarButtonItem 87
3.1.5
导航控制器的工具栏 90
3.1.6
iOS 8之后导航控制器的一些
有趣功能 91
3.2 标签控制器——UITabBarController
92
3.2.1
标签控制器的工作原理 92
3.2.2
标签控制器的基础用法解析 92
3.2.3
关于UITabBarItem的使用 94
3.3 滚动视图——UIScrollView
96
3.3.1
使用UIScrollView展示视图
内容 96
3.3.2
UIScrollView的代理方法 98
3.4 网络视图——UIWebView
101
3.4.1
App网络传输安全策略 101
3.4.2
通过网络请求加载
UIWebView 102
3.4.3
通过HTML字符串加载
UIWebView 103
3.4.4
通过NSData数据加载
UIWebView 104
3.4.5
UIWebView中常用方法解析 104
3.4.6
UIWebView的代理方法 106
3.5 表格视图——UITableView
107
3.5.1
UITableView的创建与复用
机制 107
3.5.2
创建一个表格视图
UITableView 108
3.5.3
关于表格数据的载体
UITableViewCell 111
3.5.4
设置UITableView的行高和
头尾视图 113
3.5.5
UITableView的用户交互行为 115
3.5.6
为UITableView添加索引栏 118
3.6 复杂布局视图——UICollectionView
119
3.6.1
UICollectionView控件的优势与
布局方式 119
3.6.2
使用UICollectionView进行
九宫格式的布局 119
3.6.3
创建更加灵活的流式布局 122
3.6.4
自定义UICollectionViewFlowLayout进行参差瀑布流布局 123
3.6.5
使用UICollectionView进行圆环
布局 128
3.7 实战:开发一款手机网页浏览器 133
3.7.1
网页浏览器工程的搭建 133
3.7.2
核心网页视图的设计 135
3.7.3
历史记录界面的设计 147
3.7.4
收藏界面的设计 151
3.7.5
启动页面、图标及应用名称的
相关优化 154
第4章 网络编程 157
4.1 使用NSURLConnection请求网络
数据 158
4.1.1
申请一个免费的API服务 158
4.1.2
使用NSURLConnection进行API
服务数据的获取 161
4.1.3
使用NSURLConnection进行异步
网络请求 162
4.1.4
使用NSURLConnection类通过代理
回调的方式异步进行网络请求 164
4.2 设计封装一个更加易用的网络请求类 165
4.2.1
设计自定义的网络请求连接类 166
4.2.2
设计自定义的网络请求管理类 167
4.3 JSON类型数据的解析与数据模型的
设计 171
4.3.1
JSON数据简介 171
4.3.2
在iOS中解析JSON数据 173
4.3.3
数据模型Model类的设计 175
4.4 使用CocoaPods进行第三方库的管理 180
4.4.1
在MAC上安装CocoaPods 180
4.4.2
用CocoaPods搭建一个使用第三方
网络请求框架AFNetworking的
工程 182
4.5 使用AFNetworking进行网络请求 184
4.5.1
详解HTTP/HTTPS协议 184
4.5.2
使用AFNetworking进行网络
请求 185
4.6 实战:开发“笑一笑”应用程序 188
4.6.1
工程项目框架的搭建 188
4.6.2
“笑一笑”界面数据载体cell的
设计 190
4.6.3
“笑一笑”界面的搭建 193
4.6.4
实现下拉刷新与加载更多功能 200
4.6.5
“趣图吧”界面数据载体cell的
设计 203
4.6.6
“趣图吧”界面的设计 207
第5章 音频、视频开发 216
5.1
iOS音频开发基础——AVAudioPlayer
类的使用 217
5.1.1
使用AVAudioPlayer进行MP3
音频文件的播放 217
5.1.2
进行音频播放相关属性的控制 218
5.1.3
后台播放音频及用户交互的
优化 225
5.2
iOS视频开发基础 229
5.2.1
使用MPMoviePlayerController
向应用中嵌入视频模块 230
5.2.2
MPMoviePlayerController常用
属性与方法解析 231
5.3 视频播放器视图控制器——
MPMoviePlayerViewController 236
5.4
AVPlayerViewController视频播放框架与
画中画开发技术 238
5.4.1
使用AVPlayerViewController
进行视频播放 238
5.4.2
iPad的画中画播放技术 241
5.5 实战:“歌手王菲”音频播放器的
开发 244
5.5.1
工程搭建与LRC歌词文件
简介 244
5.5.2
LRC歌词解析引擎的设计 245
5.5.3
核心播放器引擎的设计 253
5.5.4
歌曲列表与歌词显示视图界面的
设计 265
5.5.5
播放器主页面的实现 274
5.5.6
后台播放音频用户交互的处理 285
第6章 动画开发 288
6.1 使用UIImageView播放图片组帧
动画 289
6.2
UIView层动画的应用 290
6.2.1
执行UIView层过渡动画的3个类
方法 290
6.2.2
创建UIView层的阻尼动画 293
6.2.3
动画参数配置与组合动画 293
6.2.4
UIView层过渡动画支持的
属性 297
6.3 使用commit方式进行UIView层动画的
创建 298
6.3.1
使用commit方式进行UIView层
过渡动画的创建 298
6.3.2
两种UIView层动画创建方式的
优劣 300
6.4
UIView的转场动画 300
6.4.1
重绘UIView视图时使用的转场
动画 300
6.4.2
切换UIView视图时使用的转场
动画 302
6.5 核心动画编程技术——CoreAnimation
303
6.5.1
锚点对视图控件几何位置的
影响 303
6.5.2
色彩梯度层——
CAGradientLayer 304
6.5.3
视图拷贝层——
CAReplicatorLayer 305
6.5.4
图形渲染层——
CAShapeLayer 307
6.5.5
文本绘制层——CATextLayer 309
6.5.6
CAAnimation动画体系介绍 310
6.5.7
使用CABasicAnimation创建
基础动画 312
6.5.8
使用CAKeyframeAnimation类
创建关键帧动画 316
6.5.9
CALayer层的转场动画——
CATransition 317
6.5.10
CALayer层的组合动画——
CAAnimationGroup 320
6.5.11
CATransform3D变换的应用 321
6.6 炫酷的粒子效果 324
6.6.1
粒子发射器——
CAEmitterLayer 324
6.6.2
粒子单元——CAEmitterCell 327
6.6.3
创建粒子火焰动画 330
6.7 播放GIF动态图 332
6.7.1
使用UIWebView进行GIF动态图
播放 332
6.7.2
使用UIImageView帧动画进行
GIF动态图播放 334
6.8 实战:小游戏Flappy
Bird的设计与
开发 336
6.8.1
小鸟对象的设计 336
6.8.2
游戏开始界面的设计 341
6.8.3
游戏结束界面的设计 344
6.8.4
Flappy Bird游戏主框架的搭建 347
第7章 传感器开发 360
7.1 为应用程序添加手机密码及指纹识别的
安全验证 361
7.1.1
使用手机密码为应用程序添加
安全验证 361
7.1.2
使用用户指纹为应用程序添加
安全验证 363
7.2 使用加速度传感器、螺旋仪传感器与磁力
传感器获取设备空间状态 364
7.2.1
使用UIAccelerometer获取设备
空间状态 364
7.2.2
使用CoreMotion框架获取设备
空间状态信息 365
7.3 距离传感器的应用 371
7.4
iOS蓝牙开发技术 373
7.4.1
中心设备管理类
CBCentralManager 374
7.4.2
外围设备管理类
CBPeripheralManager 382
7.5
GPS应用与地图编程技术 388
7.5.1 进行设备地理位置定位 388
7.5.2
原生地图开发技术 392
7.5.3
在地图中添加大头针及标注 395
7.5.4
在地图视图中添加覆盖物 398
7.5.5
在地图中进行线路导航与附近
兴趣点检索 402
7.6 实战:简易蓝牙对战五子棋
410
7.6.1
游戏核心通信类的设计 410
7.6.2
棋盘瓦片的设计 427
7.6.3
核心游戏视图与游戏核心逻辑的
设计 430
7.6.4
核心游戏视图控制器的设计 448
第8章 界面布局 454
8.1
iOS中传统的UIViewAutoresizing布局
模式 455
8.1.1
通过代码设置视图控件的
UIViewAutoresizing模式 455
8.1.2
在xib文件中可视化地配置
控件的autoresizing属性 457
8.2
autolayout自动布局框架 459
8.2.1
初识autolayout 459
8.2.2
autolayout的属性意义与一个
简单的自动布局示例 461
8.2.3
使用Objective-C风格的方法
进行代码autolayout布局 464
8.2.4
使用格式化的字符串进行
autolayout布局对象的创建 467
8.2.5
与约束相关的几个方法 470
8.2.6
使用autolayout设计一个高度自适应
的聊天输入框和动画优化 470
8.2.7
使用第三方库Masonry进行
autolayout的约束布局 474
第9章 数据持久化 482
9.1 使用plist文件进行轻量级数据持久化
管理 483
9.1.1
在工程中读取plist文件数据 483
9.1.2
在程序沙盒Doucments目录中
创建和使用plist文件 485
9.1.3
使用NSUserDefaults类进行
数据持久化 486
9.2 使用归档技术进行数据模型持久化 489
9.2.1
进行单一系统数据类型的归档与
解归档操作 489
9.2.2
对多个对象进行数据归档 491
9.2.3
进行自定义数据模型的归档 492
9.3 小型数据库SQLite在iOS开发中的
应用 495
9.3.1
SQLite数据库常用语法介绍 495
9.3.2
使用iOS原生框架sqlite3对
SQLite数据库进行操作 497
9.4 核心数据管理框架CoreData的使用 501
9.4.1
使用CoreData设计数据模型 502
9.4.2
CoreData编程框架中3个
重要的类 504
9.4.3
CoreData编程框架的数据操作 510
9.4.4
使用CoreData进行数据与页面的
绑定 516
9.5 网络缓存策略 524
9.5.1
为网络请求设置缓存策略 524
9.5.2
应用缓存管理类NSURLCache
简介 525
第10章 提交应用程序到AppStore
527
10.1
使用Xcode开发工具进行程序调试 528
10.1.1
使用自定义断点进行代码
调试 528
10.1.2
添加全局异常断点 529
10.1.3
使用LLDB调试器进行程序
调试 530
10.2
Apple开发者账号的申请 531
10.2.1
几种类型的开发者账号 531
10.2.2
申请开发者账号的过程 531
10.3
进行应用程序的打包 534
10.3.1
在iTunes Connect中进行应用的
创建与配置 534
10.3.2
使用Xcode打包与提交
iTunes 541
第11章 更多功能与进阶技巧 545
11.1
Objective-C中block语法的应用 546
11.1.1
声明与实现block语法块 546
11.1.2
block代码块中访问对象的微妙
关系 547
11.2
iOS通知中心NSNotificationCenter的
应用 548
11.2.1
通知类NSNotification简介 549
11.2.2
通知中心NSNotificationCenter的
应用 549
11.3
多线程开发技术 550
11.3.1
使用NSThread进行线程
管理 550
11.3.2
使用NSOperation类与
NSOperationQueue类进行多任务
管理 552
11.3.3
iOS中GCD编程技术简介 556
编写本书的目的
当你拿到这本书时,相信你关心的问题便是学习完这本书后是否可以完全掌握iOS软件开发技术。十分抱歉,对于这个问题,笔者无法给你准确的答复。编程技术日新月异,移动开发领域的新技术也层出不穷,我们都需要站在前人的肩膀上前行。但是如果你问本书是否可以帮助你入门iOS软件开发,笔者倒可以拍着胸脯说没问题。
开发一款完整的iOS软件是一个复杂的过程,开发者除了需要有编程语言的基础外,还需要对程序设计有宏观的把控。本书在编写时,定位的目标就是要帮助并无太多基础的读者快速上手iOS应用开发。从开发环境准备到程序界面开发,从网络与数据逻辑开发到动画与传感器技术,本书都有专门的章节进行介绍。如果说学习理论是一个枯燥的过程,那么在编程中的动手实践就是对理论学习成果的好检验。本书中每一个模块基本都配备了实战项目,你可以通过实战项目的练习,在学习中体会独立开发软件的成就感。
本书主要内容
本书在结构上分为11个章节。下面介绍各个章节的主要内容及其联系。
第1章是为学习应用开发做准备,其中将介绍开发环境的搭建与开发工具的使用,这一章虽然为准备章节,但对初学者来说却至关重要。
第2章将介绍iOS开发中的一些基础UI控件,移动端应用一个很重要的特点就是要有绚丽的界面,应用程序的界面决定了用户使用这款应用程序的体验与心情,这一章向读者独立地介绍每个基础控件的用法,并通过一些综合实战来给读者提供综合使用这些控件的机会。
第3章在第2章的基础上,将向读者介绍iOS开发中经常使用的更多高级控件的用法,同样也会为读者提供实战机会。
第4章主要讲解了iOS应用开发中的网络编程技术,由于网络编程的演示需要有网络数据支持,很多有关网络教学的文档书籍都只讲授理论,却没有办法使读者切身地进行测试与练习。在编写本章时,特意注意了这个问题,本章除了讲授网络编程在iOS应用开发中的相关知识外,还将教读者如何使用网上免费的API服务真正做出一款网络应用。
第5章主要讲解iOS应用程序开发中的音频与视频技术,这类技术在开发音频软件和视频软件中意义重大。
第6章将作为动画专题,向读者介绍iOS应用开发中的动画技术,章节设计由简到难,并且都配有代码演示。
第7章将作为传感器专题,向读者介绍iOS开发中可以调用的设备传感器的相关知识。
第8章是界面布局专题,编写中参阅了很多iOS应用开发教材,其中都没有过多提到界面布局的相关知识,笔者认为这是一个十分大的弊端,界面布局技术是衡量一个开发者是否合格的重要指标,笔者相信读者学习iOS开发技术不只是想简简单单地做出一个DEMO自己玩,做出“产品”才是读者的真正目标,而一款成熟的产品一定是具有兼容性的,并且一定是优雅的。因此,本书特别将iOS界面布局技术作为一个单独的章节来向读者介绍。
第9章是数据持久化专题,本章将介绍有关iOS应用开发中的文件操作、数据库操作的相关知识。
通过前9章的学习,你已经具备独立开发一款iOS应用的基础能力,但是仅仅做出产品还不够,如何让自己的产品在市场发布,使用户可以下载使用也是开发者不得不去了解、学习的内容,第10章将完整地向读者介绍提交自己的应用到AppStore的整个过程。
第11章是扩展章节,此章也是读者开发能力提升的一个章节,本章将介绍一些独立于前面章节,但在实际开发中也举足轻重的编程技术。
本书特点
本书的在版的基础上,将所有代码示例除了使用Objective-C语言实现外,还使用Swift语言实现了一遍。双语版本可以让你无论学习的是哪种语言基础,在学习本书时都不会太费力。
下载资源
本书iOS开发源代码及Swift教学视频下载地址:http://pan.baidu.com/s/1qYhYCIK(注意区分数字和英文字母大小写)。如果下载有问题,请发送电子邮件至[email protected],邮件标题为“求iOS开发实战:从入门到上架App Store(第2版)下载资源”。
如果你想获取更多关于iOS开发的视频教学资源,可以访问笔者的网络学院:http://edu.csdn.net/lecturer/1283。
本书QQ群(iOS开发技术交流群):203317592
致谢
后,对于版中出现的差错,衷心的向读者表示歉意。本版中对读者提出的问题都一一进行了修正,在终稿前,笔者日思夜看,希望本版可以完美地出现在读者面前,然而,世上完美之事少之又少,一己之力实在不敢保证此书中再无疏漏。此书一经出版已成定局,然而人是灵活的,如果你在阅读本书时发现任何问题或有任何疑虑,都可以直接联系笔者,QQ:316045346。
后,本书得以顺利完成,全仰赖一个人的辛勤努力,他就是清华大学出版社的王金柱编辑。感谢他在笔者写作过程中的指导与鼓励。
编 者
2017年7月
评论
还没有评论。