iOS SDK 编程实战

978-7-115-34831-9
作者: 何孟翰
译者: 武海军
编辑: 张涛

图书目录:

目 录

第 一篇 iOS开发基础知识

第0章 在项目开发之前 2

0.1 知识的准备 2

0.2 软件的准备 3

0.3 硬件的准备 4

0.4 设计模式的准备 5

0.4.1 Model-View-Controller设计模式 5

0.4.2 Delegation设计模式 7

0.4.3 Target-Action设计模式 8

总结 9

第 1章 Xcode与开发环境 10

1.1 OS X与开发相关的特点 10

1.1.1 使用Dock启动应用程序与查看状态 11

1.1.2 使用Finder来显示文件和目录的结构与信息 11

1.1.3 使用Spotlight来快速搜索文件 13

1.1.4 使用terminal来进行文本模式的命令行操作 13

1.2 认识Xcode与开发环境 13

1.2.1 Xcode的偏好设置 14

1.2.2 Xcode的工作空间 15

1.3 开发设备管理 17

1.4 程序代码库管理 18

1.5 项目目录管理 19

1.6 存档目标管理 20

1.7 说明文件管理 21

总结 22

第 2章 Objective-C与对象基础 23

2.1 命令行模式项目与Foundation框架 23

2.2 Objective-C的类 26

2.2.1 类的声明 27

2.2.2 类的成员变量与函数 28

2.2.3 实现类的成员函数 29

2.2.4 声明与实现的切换 30

2.2.5 函数的多参数 32

2.3 Objective-C的对象实例 33

2.3.1 对对象发送消息 34

2.3.2 从类生成对象 35

2.4 使用静态程序分析器 37

2.4.1 静态程序代码分析 37

2.4.2 对象的管理与retaincount(保留计数器) 38

2.4.3 释放分配的内存 39

2.5 Property(属性)的定义 39

2.5.1 属性的声明 39

2.5.2 属性的实现 40

2.5.3 设值函数的属性 42

2.5.4 @property能设定的其余属性 47

2.6 Objective-C中的字符串 47

2.6.1 字符串的声明 48

2.6.2 使用格式化字符串来动态产生字符串的内容 49

总结 51

第3章 iOS应用程序与生命周期 52

3.1 创建一个空白的iOS项目 52

3.1.1 使用项目向导生成iOS空白项目 52

3.1.2 iOS项目的运行 54

3.1.3 委托的设计模式 56

3.1.4 委托类与应用程序生命周期的建立 57

3.2 XIB文件与Model View Controller(MVC)设计模式 65

3.2.1 使用项目向导生成单一视角应用程序(Single View Application) 65

3.2.2 xib版面配置文件与MVC的设计样式 67

3.3 Storyboard的版面配置文件 71

3.3.1 应用程序的初始化与plist文件 72

3.3.2 Storyboard的操作与MVC的设计模式 74

3.4 实现MVC界面 77

3.4.1 新增应用程序初始主界面文件 77

3.4.2 在界面文件中加载View Controller组件 78

3.4.3 实现定制化View Controller组件 80

总结 83

第4章 Objective-C进阶 84

4.1 iOS与协议Protocol 84

4.1.1 声明协议与要实现的函数 85

4.1.2 由其他对象实现的函数 86

4.1.3 协议之间的引用 89

4.2 Collection框架 91

4.2.1 CocoaTouch中的Collection 91

4.2.2 使用数组(NSArray)来存取顺序的数据 91

4.2.3 使用NSArray来定义不可变的数组 93

4.2.4 使用快速枚举(FastEnumeration)的方式获取对象 96

4.2.5 使用NSMutableArray来定义可变大小的数组 98

4.2.6 使用Set来存取不可重复的数据 101

4.2.7 使用NSSet定义不可变的Set 101

4.2.8 使用NSMutableSet定义可变大小的集合 104

4.2.9 使用NSCountedSet来获取重复对象的数量 105

4.2.10 使用键值存取Dictionary中的内容 107

4.2.11 使用NSDictionary定义不可变的dictionary 107

4.2.12 使用NSMutableDictionary定义可变的dictionary 108

4.2.13 使用NSIndexSet来获取数组的任意索引值 109

4.2.14 在NSMutableIndexSet中新增区域 111

4.2.15 在NSMutableIndexSet中删除区域 111

总结 112

第5章 用户界面设计 113

5.1 认识Xcode的界面编辑器与开发用户界面 113

5.2 使用IBAction与IBOutlet链接程序和用户界面 116

5.2.1 连接用户界面与IBOutlet变量 116

5.2.2 从用户界面生成IBOutlet变量 121

5.2.3 链接用户界面与IBAction函数 124

5.2.4 从用户界面产生IBAction函数 129

5.3 处理文本框 132

5.3.1 文本框和虚拟键盘 132

5.3.2 让文本框能与程序交互 134

5.4 设置组件的位置和大小 138

5.5 使用代码生成组件 139

5.5.1 利用代码生成文本框 140

5.5.2 按照对象的标识符来判定不同的文本框并做出反应 142

5.5.3 标签的属性设定 143

5.5.4 设定按钮组件的属性 145

5.5.5 IBAction和IBOutlet的交互 150

总结 154

第 二篇 页面的切换

第6章 实现多界面应用程序 156

6.1 公用程序模板应用程序 156

6.1.1 新增公用程序模板应用程序 156

6.1.2 从应用程序模板向导新增使用storyboard的公用程序(Utility Application) 159

6.2 标签式模板应用程序 161

6.2.1 在xib下新增一个标签页面 162

6.2.2 在storyboard下新增标签页面 166

6.2.3 连接storyboard和类文件,用代码控制用户界面 169

6.2.4 多标签的处理 170

6.2.5 标签栏模板的图标处理 171

6.3 页面模板应用程序 174

6.4 具备主从关系的模板文件 177

6.4.1 数据的新增/删除 180

6.4.2 应用程序的生命周期 181

6.4.3 主从关系的storyboard项目模板 182

总结 186

第7章 页面管理 188

7.1 使用View Controller进行页面的旋转和转置 188

7.1.1 xib中可视化组件旋转后的摆放 191

7.1.2 适应不同屏幕而提供不同的xib组件 195

7.2 使用UINavigation Controller(导航控制器)进行多页面的顺序遍历 199

7.2.1 导航控制器的基本操作 200

7.2.2 在单一视角项目(Single View Project)中新增导航栏 201

7.2.3 xib中对导航栏的模拟 204

7.2.4 在标签栏项目中新增导航栏 204

7.2.5 利用UINavigationController进行页面切换 206

7.3 导航栏的应用 211

7.3.1 使用导航栏进入View Controller的编辑模式 212

7.3.2 自定义导航栏的按钮 213

7.3.3 导航栏的工具栏 215

7.3.4 导航栏工具栏的自定义按钮 217

7.4 建立滚动条窗口组件 218

7.4.1 新增滚动条组件 219

7.4.2 在滚动条组件中新增内容 221

7.5 取得委托对象的实例 223

总结 225

第8章 使用Storyboard进行界面设计 226

8.1 从xib到storyboard 226

8.2 在空白项目中使用storyboard 227

8.2.1 新增storyboard文件 228

8.2.2 设定项目主要的storyboard文件 229

8.2.3 storyboard的操作 230

8.2.4 连接storyboard和View Controller 232

8.2.5 修改默认项目并运行 233

8.2.6 导航栏与storyboard 234

8.2.7 标签栏与storyboard 236

8.3 storyboard与View Controller的交互 237

8.3.1 在场景中加入用户交互组件 237

8.3.2 载入storyboard中单独的View Controller 237

8.3.3 载入外部xib的View Controller 240

8.4 在Scene中使用Segue设定界面的连贯 241

8.4.1 Modal类型的Segue 242

8.4.2 Push类型的Segue 244

8.5 Segue与数据传递 246

8.6 从程序中驱动Segue 249

8.7 Storyboard和静态表格 251

8.7.1 设定静态表格的类型 252

8.7.2 分栏与区域标题结尾 255

8.7.3 静态表格与Segue 256

8.8 Segue与动态切换 257

总结 258

第三篇 常用的Cocoa Touch框架

第9章 实现多语言支持 260

9.1 iOS下多语言的设定 260

9.2 多语言字符串的处理 261

9.2.1 新增字符串文件 262

9.2.2 编写字符串文件 263

9.2.3 多语言测试时的错误排除 267

9.3 从现有程序产生多语言字符串资源文件 268

9.4 使用多语言的注释 269

9.5 取得默认的语言 271

9.6 xib文件的多语言 272

9.6.1 多语言xib文件的选择 272

9.6.2 多语言xib文件的实现 273

总结 277

第 10章 iOS应用程序的常用行为 278

10.1 调用的系统URL 278

10.1.1 调用应用程序自定义的URLScheme 279

10.1.2 调用浏览器Safari浏览链接 280

10.1.3 发送E-mail的调用 281

10.1.4 拨打电话的调用 283

10.1.5 发送短信的调用 285

10.1.6 访问地图的调用 286

10.1.7 播放优酷视频 290

10.1.8 打开App Store的调用 292

10.2 操作用户偏好来存放应用程序的常用设定 293

10.2.1 认识「设定」应用程序 294

10.2.2 定义用户偏好值 294

10.2.3 用户偏好的图标 296

10.2.4 用户偏好的多语言界面 298

10.2.5 plist文件的编辑方式 299

10.2.6 新增用户偏好的组 300

10.2.7 用户偏好的文字字段 302

10.2.8 用户偏好的选项界面 303

10.2.9 用户偏好的开关选项 305

10.2.10 用户偏好的标题选项 306

10.2.11 用户偏好的滑杆选项 308

10.2.12 用户偏好的子选项 309

10.3 读取用户偏好的设定值 312

10.3.1 使用NSUserDefaults类读取用户偏好 312

10.3.2 检测用户偏好的变更 314

10.3.3 使用NSUserDefaults类设定用户偏好 315

10.3.4 用户偏好值的调试 318

总结 320

第 11章 表格的使用 321

11.1 使用UITableViewController 322

11.2 使用datasource定义表格的数据 326

11.2.1 定制化表格的内容 330

11.2.2 表格单元格的附属类型 333

11.2.3 表格的编辑模式 334

11.3 表格的delegate对象 335

11.3.1 新增表格的内容 338

11.3.2 删除表格的内容 344

总结 346

第 12章 使用CoreData 347

12.1 Core Data的架构 349

12.2 在程序中加入Core Data的功能 349

12.3 新增数据 355

12.4 查询数据 357

12.5 删除数据 361

12.6 修改数据 362

总结 367

第 13章 文件存取与多线程 368

13.1 存取应用程序目录中的文件 368

13.1.1 使用NSBundle存取应用程序中的文件 369

13.1.2 读取Bundle中的文字 371

13.1.3 Bundle和Retina资源的准备 373

13.2 应用程序的文件和外部的交互 376

13.3 使用定时组件在特定时间执行程序 378

13.3.1 使用NSTimer定时组件 379

13.3.2 只执行一次的定时器 379

13.3.3 在NSTimer中传入参数 382

13.3.4 持续执行的定时器 382

13.3.5 结合定时器和Run Loop 384

13.4 使用多线程进行异步执行 386

13.4.1 使用NSThread新增线程并执行 386

13.4.2 在线程中使用参数 387

13.5 操作对象和操作队列 389

13.5.1 使用NSInvocationOperation建立操作对象 390

13.5.2 继承NSOperation类建立操作对象 392

13.5.3 操作对象之间的依赖关系 394

总结 397

第 14章 Block与GCD 398

14.1 定义与实现Block 398

14.1.1 从函数到Block 399

14.1.2 typedef和block变量 400

14.1.3 Block所能存取的变量 401

14.1.4 Block中变量的设值与block变量 404

14.1.5 使用Block存取静态变量 406

14.1.6 Block的语法 407

14.2 Block的调试 408

14.3 Block的应用 412

14.3.1 Block用于viewcontroller 412

14.3.2 在Collection中使用Block 414

14.3.3 Block用于字典的循环 416

14.3.4 Block应用于集合(Set)的循环 416

14.3.5 用于数组中对象的排序 417

14.3.6 Block用于数组中对象的过滤 420

14.4 使用GCD执行block代码 422

14.4.1 GCD与Block 422

14.4.2 取得主线程的队列并顺序执行 424

14.4.3 取得其他执行的队列 425

14.4.4 同步执行队列的注意事项 427

14.4.5 GCD与并行执行 430

14.4.6 延迟执行block 432

总结 433

第四篇 绘图、触控与多媒体

第 15章 使用CoreGraphic绘制图形 436

15.1 绘图的概念 436

15.1.1 绘图上下文 437

15.1.2 CoreGraphic的基本类型与运算 437

15.2 使用UIView进行绘图 441

15.2.1 UIView的绘图周期 441

15.2.2 UIView和绘图上下文 442

15.2.3 在UIView中绘制贝兹路径(BezierPath) 442

15.2.4 路径的填充和样式 446

15.2.5 绘制圆弧与曲线与路径端点 449

15.2.6 路径和转换运算 452

15.2.7 绘制贝塞尔曲线 458

15.2.8 使用CoreGraphics函数进行绘图 462

15.2.9 使用CurrentTransformMatrix进行绘图坐标转换 464

15.2.10 填充的顺序与色彩的调和 466

总结 468

第 16章 切换效果与动画 469

16.1 使用切换动画切换画面 469

16.1.1 单一窗口的切换动画 469

16.1.2 从一窗口组件切换到另一个窗口组件 472

16.2 使用UIView制作基础动画 476

16.2.1 取得UIView下的CALayer进行动画 476

16.2.2 同时执行两个属性的动画或先后执行两个属性的动画 479

16.2.3 动画的参数与重复循环 480

16.2.4 多重动画的使用 481

16.2.5 取得UIView下的CALayer进行动画 483

16.3 使用CALayer制作动画 484

16.3.1 建立CALayer进行不需明确声明的动画 485

16.3.2 使用CAShapeLayer建立几何动画图层 487

16.3.3 使用CATextLayer建立文字动画图层 490

16.3.4 使用CAReplicatiorLayer建立样式重复的对象 493

16.4 使用Core Animation进行明确声明的动画 495

16.4.1 使用CABasicAnimation实现线性改变属性的动画 497

16.4.2 使用CAMediaTiming类进行动画属性的控制 501

16.4.3 设定动画的委托对象与委托函数控制 502

16.4.4 使用CAKeyFrameAnimation进行关键界面的设定 504

16.4.5 在明确的动画声明中同步使用多重动画属性 505

16.4.6 动画执行完成后的响应与顺序动画 507

16.5 在CALayer的2.5度空间制作动画 509

16.5.1 Z轴的变换与视点的建立 511

16.5.2 三度空间的旋转 514

总结 516

第 17章 触控 517

17.1 触控与事件 517

17.1.1 UITouch触控事件类 518

17.1.2 结合触控与用户界面 520

17.2 触控区域的判定 526

17.3 触控与手势 530

17.3.1 位移的手势识别 532

17.3.2 滑动的手势识别 535

17.3.3 旋转的手势识别 538

17.3.4 缩放的手势识别 539

17.3.5 点击的手势识别 542

17.3.6 长按的手势识别 544

17.3.7 识别器的委托函数 547

17.3.8 多重识别器的合并使用 549

17.4 多点触控 550

17.5 结合触控与绘图 552

总结 555

第 18章 相机和滤镜 556

18.1 图片集与相片 556

18.1.1 UIImagePickerController的初始化 556

18.1.2 使用相机功能 562

18.1.3 UIImagePickerController的委托对象 565

18.1.4 储存相机提取的界面 569

18.2 CoreImage与滤镜 571

18.2.1 滤镜与影像 571

18.2.2 内建的滤镜 572

18.2.3 滤镜的属性 575

18.3 滤镜的使用 582

18.3.1 使用CIColorInvert色彩反转滤镜 583

18.3.2 使用CISepiaTone深褐色调滤镜 584

18.3.3 使用CIHueAdjust色彩调整滤镜 585

18.3.4 使用CIVignette渐变滤镜 587

18.3.5 使用CICheckterboardGenerator产生棋盘效果 588

18.3.6 使用滤镜混合图形 591

18.4 多重滤镜的使用 593

总结 595

第 19章 影音播放 596

19.1 声音播放 596

19.1.1 使用AVAudioPlayer框架 596

19.1.2 取得声音文件的信息 599

19.1.3 播放多重音轨 603

19.1.4 AVAudioPlayer的委托对象与中断处理 604

19.1.5 在后台执行音乐 606

19.2 影片播放 607

19.2.1 使用MPMoviePlayerController类播放影片 607

19.2.2 播放流媒体影音 610

19.2.3 使用AVPlayer类播放影片 614

19.2.4 影片与外接屏幕 617

总结 620

第五篇 地图与网络存取

第 20章 地图与GPS 622

20.1 使用MKMapView显示地图 622

20.1.1 地理信息相关的数据结构 623

20.1.2 在MapView中设定位置 625

20.1.3 在MapView移动中心点 626

20.1.4 使用MKMapPoint标记地图 628

20.1.5 地图的响应函数 630

20.2 地图的标记 631

20.2.1 建立遵循MKAnnotation协议的对象 632

20.2.2 使用MKAnnotationView自定义地标 634

20.2.3 设定加入产生的地标之后的响应函数 635

20.2.4 地标详细信息 637

20.2.5 地点标记的拖曳与移动 638

20.3 取得用户位置的标记 640

20.4 地图与定制化图层 641

20.4.1 绘制圆形的地图图层 642

20.4.2 绘制多边形线段的地图图层 643

20.4.3 绘制多边形的地图图层 644

20.5 使用地理信息编码 645

总结 646

第 21章 常用的网络存取功能 647

21.1 显示网页 647

21.1.1 使用UIWebView 647

21.1.2 使用UIWebViewDelegate查看网页内容 649

21.2 同步与异步的数据存取 650

21.2.1 使用NSURLConnection执行异步调用 651

21.2.2 使用NSURLConnection执行同步调用 653

21.2.3 同步调用与GCD的异步执行 654

21.3 读取JSON格式 656

21.3.1 将Foundation对象转成JSON对象 656

21.3.2 从网络上读取JSON对象 658

21.4 整合Facebook 660

21.4.1 下载FacebookSDK 661

21.4.2 设定Facebook应用程序并取得AppID 662

21.4.3 初始化Facebook对象 663

21.4.4 实现Facebook的登入与注销 665

总结 667

详情

《iOS 6 SDK 开发实战演练》内容完整丰富,具有较强的通用性, 编程领域中各层次读者都能通过本书快速学习iOS的SDK开发,提高相关技能。开发实战演练》内容完整丰富,具有较强的通用性, 编程领域中各层次读者都能通过本书快速学习iOS的SDK开发,提高相关技能。

图书摘要

相关图书

iOS 14开发指南【进QQ群414744032索取配套资源】
iOS 14开发指南【进QQ群414744032索取配套资源】
iOS 11 开发指南
iOS 11 开发指南
iOS和tvOS 2D游戏开发教程
iOS和tvOS 2D游戏开发教程
Swift 3开发指南
Swift 3开发指南
iOS  项目开发全程实录
iOS 项目开发全程实录
iOS 10 开发指南
iOS 10 开发指南

相关文章

相关课程