《iOS移动开发从入门到精通 第2版》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:李发展编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302511571
  • 页数:606 页
图书介绍:本书共26章,循序渐进地讲解了iOS 11应用开发的基本知识。包括Xcode 9与swift 4最新版本在ios开发中的应用,书中提供了很多实用案例与程序代码,可供读者边学边练。

第1章 开始iOS开发之旅 1

1.1 iOS移动开发现状 1

1.1.1 iOS的历史 2

1.1.2 iOS 11的十一大变化 4

1.1.3 iOS应用开发的八个特点 6

1.2 iOS 11和Xcode 9新增的开发技能 6

1.2.1 ARKit增强现实 7

1.2.2 CoreML机器学习 7

1.2.3 Face ID 7

1.2.4 拖放操作 8

1.2.5 Core NFC 8

1.2.6 安全区布局指南 9

1.2.7 Asset UIColor 9

1.2.8 Wireless Development 9

1.2.9 GitHub 10

1.3 成为一名iOS开发者 10

1.3.1 硬件上的需求 10

1.3.2 加入Apple开发者计划 11

1.3.3 下载安装Xcode和模拟器 12

1.3.4 创建开发和发布配置文件Provisioning Profile 13

1.4 创建一个基本的iOS项目 16

1.4.1 项目的创建 16

1.4.2 设置项目的信息 18

1.4.3 设置应用的Icon图标 19

1.4.4 设置应用的Launch图片 20

1.4.5 编译并运行项目 22

1.5 iOS应用的生命周期 23

1.5.1 iOS应用程序的状态 23

1.5.2 演示iOS应用程序的各种状态 24

1.6 小结 25

第2章 Xcode 9 IDE和iOS模拟器 27

2.1 Xcode 9的使用 27

2.1.1 工具栏的使用 28

2.1.2 导航器的功能介绍 29

2.1.3 项目导航器中的内容 29

2.1.4 创建一个组和Swift文件 30

2.1.5 在项目中搜索文件 33

2.1.6 代码的查找和替换 36

2.1.7 代码的Debug调试 36

2.2 iOS模拟器的使用 39

2.2.1 使用多种iOS模拟器 39

2.2.2 iOS模拟器方向的切换 40

2.2.3 iOS模拟器语言的切换 41

2.2.4 截取模拟器屏幕 41

2.2.5 应用程序的退出和删除 41

2.3 小结 42

第3章 Swift 4.0的基础知识 43

3.1 Swift的基本概念 43

3.1.1 Swift语言的特点 44

3.1.2 Swift常量和变量的定义 44

3.1.3 常量和变量的输出 45

3.1.4 注释 46

3.1.5 Playground 47

3.2 数据类型与运算 49

3.2.1 布尔类型 49

3.2.2 整数类型及实例属性 50

3.2.3 浮点类型及实例属性 50

3.2.4 字符和字符串 51

3.2.5 元组类型 54

3.2.6 一元、二元和三元运算符 55

3.2.7 比较运算符 56

3.3 循环语句和条件判断语句 56

3.3.1 for循环 56

3.3.2 while循环语句 58

3.3.3 repeat-while循环语句 58

3.3.4 if条件判断语句 59

3.3.5 switch条件判断语句 60

3.3.6 continue语句和fallthrough语句 60

3.4 数组和字典 61

3.4.1 数组 61

3.4.2 多维数组 63

3.4.3 数组的遍历 64

3.4.4 字典 65

3.5 小结 67

第4章 Swift 4.0的进阶内容 68

4.1 函数 68

4.1.1 函数的定义和调用 68

4.1.2 为参数设置默认值 69

4.1.3 设置可变的函数参数数量 70

4.1.4 函数作为参数和返回类型 71

4.1.5 元组作为函数的返回类型实现多个返回值 72

4.1.6 使用函数类型 73

4.1.7 函数的输入输出参数 74

4.1.8 函数的嵌套 74

4.1.9 函数的递归用法 75

4.1.10 常用的内置函数 76

4.2 枚举和结构体 78

4.2.1 枚举 78

4.2.2 结构体 81

4.3 类 84

4.3.1 类的创建 84

4.3.2 类属性的set和get方法 86

4.3.3 类属性的willSet和didSet方法 87

4.3.4 类的静态方法 89

4.3.5 类的析构 89

4.3.6 类的继承 90

4.3.7 类的延迟加载属性lazy 92

4.3.8 类的引用特征 93

4.3.9 类型检查 94

4.3.10 Any和AnyObject 96

4.4 扩展、协议和其他 97

4.4.1 扩展 97

4.4.2 协议 99

4.4.3 问号和感叹号 101

4.5 小结 103

第5章 视图UIView和层CALayer 104

5.1 视图UIView 104

5.1.1 UIView概述 104

5.1.2 UIView的外观属性 106

5.1.3 UIView的几何属性 110

5.1.4 UIView的嵌套和层次关系 112

5.1.5 UIView的交互属性 114

5.1.6 UIView的变形操作 116

5.1.7 自定义UIView视图 118

5.2 CALayer层 122

5.2.1 CALayer边框 122

5.2.2 CALayer投影 123

5.2.3 CALayer圆角 124

5.2.4 CALayer渐变 126

5.3 小结 128

第6章 视图控制器UIViewController 129

6.1 UIViewController视图控制器概述 129

6.1.1 视图控制器与MVC 130

6.1.2 创建一个视图控制器 131

6.1.3 以模态方式弹出视图控制器 134

6.1.4 视图控制器的生命周期 138

6.1.5 视图控制器和UIScrollView 140

6.2 UITabBarController 144

6.2.1 创建一个UITabBarController 144

6.2.2 改变UITabBarController索引 146

6.2.3 在Tab图标上显示角标 147

6.3 UINavigationController 148

6.3.1 创建一个UINavigationController 148

6.3.2 UINavigationController视图入栈和出栈 151

6.3.3 导航栏和工具栏的显示和隐藏 155

6.3.4 导航栏样式的修改 155

6.4 导航控制器和标签控制器 156

6.5 小结 159

第7章 UIKit常用控件 160

7.1 UIKit框架和 Foundation框架 160

7.1.1 UIKit框架的结构 161

7.1.2 UIKit框架和视图对象的交互 163

7.2 UIButton按钮控件 164

7.2.1 不同样式的UIButton按钮 164

7.2.2 UIButton按钮的状态 166

7.2.3 UIButton按钮的事件响应 167

7.3 UILabel标签控件 169

7.3.1 创建一个UILabel标签 170

7.3.2 长文本标签的换行 170

7.3.3 标签文字样式的自定义 172

7.4 UISwitch开关控件 172

使用开关控件 173

7.5 UITextField文本输入控件的使用 174

7.5.1 自定义UITextField的外观和键盘 174

7.5.2 响应UITextField的键盘通知 177

7.6 UIAlertController 178

7.6.1 创建一个警告窗口 179

7.6.2 创建一个动作表单 180

7.7 UIDatePicker 182

7.8 UIStackView 184

使用UIStackView组织视图 184

7.9 小结 187

第8章 UITableView和UICollectionView 188

8.1 UITableView概述 188

8.1.1 UITableViewCell单元格 189

8.1.2 创建一个简单的表格 191

8.1.3 自定义单元格UITableViewCell 195

8.1.4 自定义单元格的高度 197

8.1.5 给表格添加章节和索引 200

8.1.6 单元格的选择与取消选择 203

8.1.7 单元格的插入和删除 206

8.1.8 移动单元格的位置 211

8.1.9 表格之间的嵌套 214

8.2 UICollectionView概述 221

8.2.1 UICollectionView的实现|原理 222

8.2.2 创建一个UICollectionView对象并添加点击事件 223

8.3 小结 227

第9章 触屏事件和触摸手势 228

9.1 触摸事件的监测 228

9.1.1 对触摸事件阶段的监测 229

9.1.2 监测是否触摸到某个视图 231

9.1.3 实现图像视图的拖动 232

9.2 触摸手势的使用 234

9.2.1 实现单点触摸手势 235

9.2.2 实现双击触摸手势 237

9.2.3 实现长按手势的监测 237

9.2.4 捏合手势的监测 239

9.3 3D Touch的使用 241

9.4 小结 244

第10章 动画、声音与视频 245

10.1 制作动画 245

10.1.1 UIView的动画 245

10.1.2 使用UIImageView播放帧动画 251

10.1.3 位移关键帧动画的制作 253

10.2 音频的播放 255

10.2.1 使用System Sound Services播放简短声音 257

10.2.2 使用AVAudioPlayer播放音乐 258

10.3 视频的播放 261

10.3.1 使用AVPlayer播放影片 262

10.3.2 实现影片的画中画功能 263

10.4 小结 266

第11章 网络请求和Alamofire 267

11.1 网络请求 267

11.1.1 GET和POST请求 267

11.1.2 同步请求和异步请求 268

11.1.3 使用URLSession进行网络请求 268

11.1.4 使用URLSession 下载图片并显示进度 270

11.2 Alamofire的使用 273

11.2.1 Alamofire的安装 274

11.2.2 使用Alamofire进行GET和POST请求 275

11.2.3 使用Alamofire上传图片 277

11.2.4 使用AlamofireImage缓存图像 278

11.2.5 使用AlamofireObjectMapper将JSON数据映射为对象 281

11.3 小结 283

第12章 UIWebView与HTML 5技术 284

12.1 UIWebView的使用 284

12.1.1 使用UIWebView加载网页 285

12.1.2 使用UIWebView加载HTML字符串和GIF动画 287

12.1.3 使用UIWebView加载本地网页 289

12.1.4 使用JavaScript回调原生程序 293

12.2 创建一个简单的笔记本 296

12.2.1 创建一个可编辑的div 296

12.2.2 设置网页的CSS样式 296

12.2.3 添加插入笔记图片的方法 297

12.2.4 添加删除图片和获得笔记的方法 299

12.2.5 实现笔记本的用户界面 299

12.3 小结 302

第13章 数据的持久化 303

13.1 解析plist文件 303

13.1.1 创建和解析plist文件 304

13.1.2 将信息写入plist文件 306

13.2 使用CoreData进行数据的持久化 308

13.2.1 创建Core Data实体并插入数据 309

13.2.2 检索Core Data中的数据 312

13.2.3 修改和删除Core Data数据 313

13.3 小结 316

第14章 多线程技术 317

14.1 多线程的概念 317

14.1.1 任务、进程和线程 318

14.1.2 线程的Stack Space 318

14.1.3 线程的优先级 318

14.1.4 线程的生命周期 319

14.1.5 线程和RunLoop 319

14.2 使用Thread 320

14.2.1 创建Thread下载图片 320

14.2.2 给Thread加锁使线程同步 322

14.3 Operation技术的使用 325

14.4 Grand Central Dispatch的使用 328

14.4.1 使用GCD查询IP地址信息 329

14.4.2 DispatchGroup调度组的使用 331

14.5 小结 333

第15章 MapKit地图 334

15.1 MapKit的概念 334

15.1.1 MKMapView的显示区域 335

15.1.2 MKMapView的跟踪和定位 336

15.1.3 MKMapView的交互选项和装饰物 336

15.1.4 创建一个MKMapView地图 337

15.1.5 MKMapView代理的使用 339

15.1.6 自定义annotationView和calloutView 341

15.1.7 Camera的使用 344

15.2 小结 346

第16章 iOS的图文混排技术 347

16.1 Core Text的使用 347

16.1.1 文字排版方面的一些基本概念 348

16.1.2 列出设备中的所有字体 350

16.1.3 富文本的创建 351

16.1.4 图文混排的实现 353

16.2 Text Kit的使用 358

16.2.1 使用Text Kit对文字进行分栏 358

16.2.2 使用Text Kit制作图文混排效果 360

16.3 小结 362

第17章 iOS的图像和视频处理技术 363

17.1 Core Image概述 363

17.1.1 使用Core Image的三个类制作单色调效果 364

17.1.2 使用Core Image给图片添加马赛克 366

17.1.3 使用Core Image处理视频画面 367

17.1.4 输出Core Image的所有滤镜 372

17.1.5 使用CIDetector和CIFeature进行人脸检测 373

17.2 UIBlurEffect和CGBlendMode 375

17.2.1 使用UIBlurEffect实现毛玻璃效果 375

17.2.2 使用CGBlendMode实现颜色混合效果 376

17.3 小结 378

第18章 iOS常用设备的使用 379

18.1 照片和相机的使用 379

18.1.1 读取照片中的图片 380

18.1.2 调用相机拍摄照片 384

18.2 定位设备的使用 385

18.2.1 使用定位设备获取设备地理位置 386

18.2.2 将地理坐标转换为实际地名 389

18.3 陀螺仪和加速计设备的使用 391

18.3.1 陀螺仪的原理和应用 391

18.3.2 加速计的原理和应用 392

18.3.3 检测iOS设备的晃动 392

18.4 小结 394

第19章 使用Storyboard开发用户界面 395

19.1 Storyboard概述 395

19.1.1 Storyboard的优缺点 396

19.1.2 Storyboard的组织形式 397

19.1.3 创建一个Storyboard 398

19.1.4 更改Storyboard的初始视图控制器 400

19.2 在Storyboard中使用标准控件 401

19.2.1 添加三个控件 401

19.2.2 对控件进行连接 403

19.3 在Storyboard中使用表格控件 406

19.3.1 在Storyboard中添加TableView 406

19.3.2 添加Table View Cell 406

19.3.3 设置Table View的数据源 408

19.3.4 修改ViewController.swi文件 409

19.4 在Storyboard中使用集合控件 410

19.4.1 添加Collection View 410

19.4.2 设置Collection View Cell 410

19.4.3 设置Collection View的数据源和代理 412

19.4.4 修改ViewController.swi文件 413

19.5 Storyboard常见的层次结构 414

19.6 Storyboard之间的页面跳转和参数传递 418

19.6.1 单个Storyboard中页面之间的参数传递 418

19.6.2 多个Storyboard中的页面跳转及参数传递 421

19.7 使用约束功能适配多分辨率 426

19.7.1 打开并运行示例项目 427

19.7.2 给父视图MainView添加约束 428

19.7.3 给三条分隔线添加约束 430

19.7.4 给两个小箭头添加约束 432

19.7.5 给“添加新的会员”按钮添加约束 434

19.7.6 给图标添加约束 435

19.8 小结 437

第20章 单元测试和界面测试 438

20.1 单元测试概述 438

20.1.1 Xocde的XCTest框架 439

20.1.2 对自定义类的方法进行单元测试 442

20.1.3 使用XCTest框架进行性能测试 445

20.2 UI Testing界面测试 446

20.2.1 往项目中插入UI Testing 446

20.2.2 制作UI测试的程序 448

20.2.3 录制UI Testing的步骤 450

20.2.4 播放UI Testing的录制制步骤 450

20.3 小结 451

第21章 iOS应用内存泄漏的检测 452

21.1 Allocations工具的使用 452

21.2 Leaks工具的使用 459

21.3 小结 462

第22章 iOS应用程序的本地化 463

22.1 应用程序的本地化 463

22.1.1 应用程序名称的本地化 464

22.1.2 应用程序文字内容的本地化 468

22.1.3 Storyboard的本地化 472

22.1.4 图片素材的本地化 474

22.2 小结 477

第23章 加密与安全 478

23.1 加密与安全 478

23.1.1 对称加密和非对称加密 479

23.1.2 3DES加密 479

23.1.3 SHA1加密 485

23.1.4 MD5加密 487

23.1.5 越狱情况的判断 489

23.2 小结 491

第24章 iOS 11新增开发功能 492

24.1 Assets.xcassets的新特性 492

24.1.1 在Assets.xcassets中添加Color Set 493

24.1.2 在Assets.xcassets中添加矢量图片 495

24.2 UIPasteConfiguration和Drag and Drop 496

24.2.1 实现Drag to paste text功能 497

24.2.2 实现拖放粘贴图片功能 499

24.3 UISwipeActionsConfiguration的使用 502

24.4 ARKit增强现实框架 505

24.4.1 什么是AR增强现实 506

24.4.2 基于ARKit的应用程序 506

24.4.3 创建一个ARKit项目 507

24.5 CoreML机器学习框架 511

24.6 小结 515

第25章 在iTunes Connect上创建App 516

25.1 创建一款新App 516

25.1.1 登录iTunes Connect并创建App 517

25.1.2 创建In-App Purchase内购项目 519

25.1.3 为IAP内购添加沙箱技术测试账号 521

25.2 小结 522

第26章 版本控制和开源类库安装 523

26.1 将项目添加到GitHub 523

26.1.1 Git和GitHub 523

26.1.2 创建一个GitHub账号 524

26.1.3 将新建项目上传到GitHub 525

26.2 使用CocoaPods安装第三方类库 528

26.2.1 安装CocoaPods 528

26.2.2 安装第三方开源类库 529

26.3 小结 531

第27章 App项目结构的搭建 532

27.1 项目目录结构的创建 532

27.1.1 创建New Group新组 532

27.1.2 Utils目录中的工具类 533

27.1.3 Models目录中的实体类 535

27.2 完成项目的信息配置 536

27.2.1 设置项目的通用属性 536

27.2.2 设置应用程序的图标 537

27.2.3 设置应用程序的启动图 538

27.3 制作引导页 539

27.3.1 下载和安装BWWalkthrough 539

27.3.2 创建引导页 539

27.4 制作动态标签控制器 545

27.4.1 下载和安装RAMAnimatedTabBarController 545

27.4.2 创建Tab Bar Controller 546

27.4.3 制作Tab动画效果 547

27.5 小结 549

第28章 开发笔试和随机答题功能应用 550

28.1 开发笔试答题功能 550

28.1.1 创建自定义视图 551

28.1.2 FoldingCell的下载和安装 554

28.1.3 在故事板中搭建界面 554

28.1.4 创建答题页面QuestionCell 556

28.1.5 创建QuizViewController 559

28.2 开发随机答题功能 562

28.2.1 在故事板中搭建界面 562

28.2.2 创建RandomViewController 563

28.3 小结 565

第29章 开发错题集和面试题功能应用 566

29.1 开发错题集功能 566

29.1.1 在故事板中搭建错题集界面 567

29.1.2 创建FailedItemsViewController 567

29.2 开发面试题功能 570

29.2.1 在故事板中搭建面试题界面 570

29.2.2 创建InterviewItemsViewController 571

29.3 小结 574

第30章 开发App盈利模式和分享传播应用 575

30.1 App的盈利模式和分享传播 575

30.1.1 谷歌AdMob广告的申请和植入 576

30.1.2 在故事板中搭建界面 579

30.1.3 使用Alamofire获取产品列表 580

30.1.4 实现In App Purchases内购功能 582

30.1.5 使用ShareSDK实现App的社会化分享 585

30.1.6 多种分辨率的适配 591

30.2 小结 594

第31章 应用程序的打包和发布 595

31.1 iOS应用商店概述 595

31.1.1 App Store的重大更新 596

31.1.2 在iTunes Connect配置一个App 598

31.1.3 打包App为IPA文件 600

31.1.4 自动化打包App 602

31.1.5 上传App至App Store 604

31.1.6 配置构建版本并提交审核 605

31.2 小结 606