《疯狂iOS讲义(下)——iPhone/iPad高级应用与手游开发(含CD光盘1张)》

基本信息

作者: 李刚    肖文吉

出版社:电子工业出版社

ISBN:9787121224379

上架时间:2014-2-21

出版日期:2014 年3月

开本:16开

页码:628

版次:1-1

所属分类:计算机 > 软件与程序设计 > 移动开发 > iPhone

 

更多关于》》》 《疯狂iOS讲义(下)——iPhone/iPad高级应用与手游开发》

编辑推荐

基于iOS 7平台,全部案例均通过iPhone 5s真机测试。

  商业级手游代码无保留全盘呈现。

  国家级行业大奖得主、电子工业出版社优秀作者、IT名家李刚老师出品,一如既往的质量保障。

   iOS开发零基础入门请阅读《疯狂iOS讲义(下)——Objective-C 2.0与iPhone/iPad应用开发基础》

   Android应用开发请阅读15次印刷旗舰作品《疯狂Android讲义(第2版)》

内容简介

书籍

计算机书籍

  《疯狂ios讲义(下)——iphone/ipad高级应用与手游开发》以ios 7.0、xcode 5.0为平台,全面介绍了ios应用开发的高级知识。本书最后两章还通过3个实际的手游介绍了cocos2d框架的用法,也包括了手游开发中用到的瓦片地图、粒子效果和物理引擎等实用技术。《疯狂ios讲义(下)——iphone/ipad高级应用与手游开发》是《疯狂ios讲义》下册,书中不包含objective-c编程的基本语法、ios应用开发的基础知识等内容。《疯狂ios讲义(下)——iphone/ipad高级应用与手游开发》内容包含多点触摸与手势检测、应用国际化、数据存储、sqlite数据库与core data、ios多媒体开发、加速计和陀螺仪、多线程、网络编程、定位、地图、推送机制、icloud服务等内容,《疯狂ios讲义(下)——iphone/ipad高级应用与手游开发》最后还通过疯狂打飞机、萌仙、愤怒的小鸟等实例介绍了cocos2d框架的功能和用法。读者在阅读本书之前,建议先掌握《疯狂ios讲义》上册中的知识。

  《疯狂ios讲义(下)——iphone/ipad高级应用与手游开发》并不局限于介绍ios编程的各种理论知识,而是从“项目驱动”的角度来讲解理论。全书一共包括近百个实例,这些示范性的实例既可帮读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考,拿来就用。如果读者在阅读本书时遇到了技术问题,可以登录疯狂java联盟(http://www.crazyit.org)发帖,笔者将会及时予以解答。

  《疯狂ios讲义(下)——iphone/ipad高级应用与手游开发》为所有打算深入掌握ios编程的读者而编写,适合各种层次的ios学习者和开发者阅读,也适合作为大学教育、培训机构的ios教材。但如果只是想简单涉猎ios应用开发,则本书过于庞大,不适合阅读。

目录

《疯狂ios讲义(下)——iphone/ipad高级应用与手游开发》

第1章 多点触摸与手势检测 1

1.1 响应者链 2

1.2 响应触碰方法 3

1.3 使用手势处理器(uigesturerecognizer) 3

1.3.1 使用uitapgesturerecognizer处理点击手势 4

1.3.2 使用uipinchgesturerecognizer处理捏合手势 6

实例:通过捏合手势缩放图片 7

1.3.3 使用uirotationgesturerecognizer处理旋转手势 9

实例:通过旋转手势旋转图片 9

1.3.4 使用uiswipegesturerecognizer处理轻扫手势 10

实例:贪食蛇 12

1.3.5 使用uipangesturerecognizer处理拖动手势 18

1.3.6 使用uilongpressgesturerecognizer处理长按手势 19

实例:长按添加按钮 20

1.4 创建和使用自定义手势处理器 21

1.4.1 开发自定义手势处理器 21

1.4.2 使用自定义手势处理器 23

1.5 本章小结 24

第2章 国际化 25

2.1 ios应用国际化的基础 26

2.1.1 ios应用的国际化思路 26

2.1.2 objective-c国际化支持的语言和国家 28

2.2 国际化界面设计文件 29

2.3 国际化应用程序的显示名称 32

2.4 国际化图片 34

2.5 国际化文本 35

2.6 本章小结 38

第3章 ios的数据存储与io 39

3.1 应用程序沙盒 40

3.1.1 获取documents目录 41

3.1.2 获取tmp目录 41

3.1.3 文件保存策略思考 41

3.2 应用程序参数与用户默认设置 42

3.2.1 使用settings bundle 42

3.2.2 使用nsuserdefaults读取、保存应用程序参数 50

3.3 属性列表 54

实例:备忘录 55

3.4 对象归档和原生i/o api 58

3.5 使用sqlite 3数据库 58

3.5.1 ios的sqlite编程 58

3.5.2 创建数据库和表 63

3.5.3 使用sql语句执行查询 63

实例:英文生词本 64

3.5.4 使用sqlite3工具 67

3.5.5 使用sqlite manager管理数据库 69

3.6 使用core data框架 71

3.6.1 core data简介 71

3.6.2 初始化core data项目 73

3.6.3 设计实体模型 76

3.6.4 使用core data实现数据的增、删、改、查 78

3.6.5 管理实体的关联关系 84

实例:图书管理系统 84

3.7 本章小结 95

第4章 多媒体应用开发 96

4.1 音频和视频的播放 97

4.1.1 使用system sound services播放音效 97

4.1.2 使用avaudioplayer播放音乐 98

4.1.3 使用mpmediapickercontroller选择系统音乐 102

实例:简单音乐播放器 103

4.1.4 使用mpmovieplayercontroller播放视频 106

4.2 使用avaudiorecorder录制音频 108

4.3 拍照和录制视频 112

4.3.1 使用uiimagepickercontroller拍照和录制视频 112

4.3.2 使用avfoundation拍照和录制视频 116

实例:完全自定义的相机 118

4.4 使用avfoundation生成视频缩略图 135

4.5 本章小结 137

第5章 管理手机 138

5.1 使用addressbook管理联系人 139

5.1.1 删除联系人 142

5.1.2 添加联系人 144

5.1.3 修改联系人 147

5.2 使用addressbookui管理联系人 151

5.2.1 使用abnewpersonviewcontroller添加联系人 153

5.2.2 使用abunknownpersonviewcontroller显示未知联系人 154

5.2.3 使用abpeoplepickernavigationcontroller选择联系人 156

5.2.4 使用abpersonviewcontroller显示指定联系人 157

5.3 使用uiapplication打电话、发短信 159

5.4 使用mfmessagecomposeviewcontroller发短信 160

5.5 使用mfmailcomposeviewcontroller发送邮件 162

5.6 本章小结 165

第6章 加速计与陀螺仪 166

6.1 ios支持的加速计和陀螺仪 167

6.1.1 ios加速计和陀螺仪的理论基础 167

6.1.2 基于代码块方式获取加速度数据、陀螺仪数据、磁场数据 168

6.1.3 主动请求获取加速度数据、陀螺仪数据、磁场数据 172

实例:怪物足球 173

6.2 感知设备移动 178

实例:水平仪 181

6.3 ios 7新增的计步器 184

6.4 ios 7新增的cmmotionactivitymanager 186

6.5 本章小结 188

第7章 多线程 189

7.1 线程概述 190

7.1.1 线程和进程 190

7.1.2 多线程的优势 191

7.2 使用nsthread实现多线程 192

7.2.1 创建和启动线程 192

7.2.2 线程的状态 194

7.2.3 终止子线程 194

7.2.4 线程睡眠 195

实例:使用线程下载网络图片 196

7.2.5 改变线程优先级 197

7.3 线程同步与线程通信 199

7.3.1 线程安全问题 199

7.3.2 使用@synchronized实现同步 201

7.3.3 释放对同步监视器的锁定 203

7.3.4 同步锁(nslock) 203

7.3.5 使用nscondition控制线程通信 205

实例:生产者-消费者 205

7.4 使用gcd实现多线程 208

7.4.1 创建队列 209

7.4.2 异步提交任务 210

实例:使用gcd下载图片 212

7.4.3 同步提交任务 213

7.4.4 多次执行的任务 214

7.4.5 只执行一次的任务 215

7.5 后台运行 216

7.5.1 进入后台时释放内存 216

实例:疯狂飞机大战 216

7.5.2 进入后台时保存状态 223

7.5.3 请求更多的后台时间 223

7.6 使用nsoperation与nsoperationqueue实现多线程 225

7.6.1 使用nsinvocationoperation和nsblockoperation 226

实例:使用nsblockoperation下载图片 226

7.6.2 定义nsoperation子类 227

7.7 本章小结 229

第8章 ios网络应用编程 230

8.1 检测网络状态 231

8.1.1 检查网络状态 231

8.1.2 监听网络状态改变 234

8.2 使用cfnetwork实现tcp协议的通信 235

8.2.1 ip地址与端口号 236

8.2.2 tcp协议基础 236

8.2.3 使用cfsocket实现tcp服务器端 237

8.2.4 使用cfsocket实现tcp客户端 241

实例:网络聊天程序 244

8.2.5 使用cocoaasyncsocket实现tcp客户端 247

8.3 使用nsurlconnection 250

8.3.1 使用nsurlconnection从网络获取数据 250

8.3.2 使用nsmutableurlrequest向服务器发送数据 253

8.4 xml解析 255

8.4.1 dom与sax 255

8.4.2 使用nsxmlparser解析xml文档 257

8.4.3 使用libxml2解析xml文档 262

8.4.4 使用gdataxml解析xml文档 266

8.4.5 使用gdataxml生成、修改xml文档 268

8.5 json解析 271

8.5.1 json的基本知识 271

8.5.2 使用nsjsonserialization处理json数据 274

8.5.3 使用sbjson解析json数据 274

8.5.4 使用jsonkit解析json数据 275

8.6 使用afnetworking实现网络通信 280

8.6.1 提交get请求与提交post请求 280

实例:访问被保护资源 281

8.6.2 处理json或plist响应 284

8.6.3 处理xml响应 288

8.6.4 上传文件 290

8.7 使用asihttprequest框架实现网络编程 293

8.7.1 发送同步或异步的get请求 293

8.7.2 使用代码块 296

8.7.3 使用nsoperationqueue管理请求 297

8.7.4 发送请求参数和文件上传 299

实例:天气预报 300

8.8 本章小结 311

第9章 使用corelocation定位 312

9.1 ios的定位支持 313

9.1.1 gps卫星定位 313

9.1.2 基站定位 314

9.1.3 wifi定位 314

9.2 获取定位信息 314

9.2.1 获取位置信息 315

9.2.2 使用ios模拟器模拟位置 318

9.2.3 监控行车速度和行车距离 318

9.3 方向监测 320

实例:指南针 322

9.4 区域监测 323

9.5 本章小结 325

第10章 使用mapkit开发地图服务 326

10.1 使用mapkit框架 327

10.1.1 使用mkmapview控件 328

10.1.2 指定地图显示中心和显示区域 329

10.1.3 使用ios 7新增的mkmapcamera 332

10.2 根据地址定位 333

10.2.1 地址解析与反向地址解析 333

10.2.2 根据地址定位 337

10.3 在地图上添加锚点 340

10.3.1 添加简单的锚点 340

10.3.2 添加自定义锚点 343

10.4 在地图上添加覆盖层 345

10.4.1 添加几何覆盖层 346

10.4.2 使用ios 7新增的mktileoverlay覆盖层 348

10.5 使用ios 7新增的mkdirections获取导航路线 350

实例:行车导航仪 351

10.6 本章小结 354

第11章 推送机制 355

11.1 使用nsnotificationcenter通信 356

11.1.1 使用nsnotificationcenter监听系统组件的通知 358

11.1.2 使用nsnotificationcenter监听自定义通知 359

11.2 ios本地通知 361

11.3 ios远程推送通知 364

11.3.1 开发push客户端应用 366

11.3.2 开发push服务端程序 377

11.4 本章小结 381

第12章 icloud服务与应用 382

12.1 icloud入门 383

12.1.1 为应用开启icloud服务 384

12.1.2 使用nsmetadataquery查询文档 389

12.1.3 添加文档 393

12.1.4 编辑文档 395

12.1.5 删除文档 397

12.2 使用icloud保存云端首选项 398

12.3 本章小结 401

第13章 使用cocos2d开发2d游戏 402

13.1 cocos2d简介 403

13.1.1 cocos2d的特点 403

13.1.2 cocos2d的主要功能 403

13.2 cocos2d的下载与安装 404

13.2.1 下载cocos2d 404

13.2.2 安装cocos2d 405

13.2.3 使用cocos2d-iphone的帮助文档 405

13.2.4 cocos2d中内置的项 406

13.3 创建cocos2d项目 407

13.3.1 helloworld cocos2d项目 407

13.3.2 cocos2d项目如何支持arc 408

13.3.3 cocos2d项目结构和代码分析 413

13.4 ccnode节点类 419

13.4.1 ccnode类的属性 419

13.4.2 ccnode类的方法 420

13.5 ccscene场景类 423

13.5.1 cctransitionscene 场景切换 423

13.5.2 cocos2d支持的场景过渡效果 424

13.6 cclayer类 424

13.6.1 cclayer类的属性 425

13.6.2 cclayer类的常用方法 425

13.6.3 cclayer类的作用 425

13.6.4 cclayercolor类的属性和方法 425

13.6.5 cclayergradient渐变色层类 426

13.6.6 ccmenu菜单类 426

13.7 ccdirector导演类 429

13.7.1 ccdirector导演类的属性 430

13.7.2 ccdirector导演类的方法 430

13.8 cctexture纹理类 431

13.8.1 纹理的相关概念 431

13.8.2 纹理相关的类 431

13.9 ccsprite精灵类 432

13.9.1 ccsprite精灵类的属性 432

13.9.2 ccsprite精灵类的方法 432

13.9.3 ccspriteframe精灵帧 435

13.9.4 ccspriteframecache精灵帧缓存 436

13.9.5 ccspritebatchnode精灵表单 436

13.9.6 制作精灵表单 438

13.9.7 精灵表单示例 440

13.10 cocos2d中的动作 442

13.10.1 cocos2d中的动作类 443

13.10.2 基本动作 444

13.10.3 组合动作 453

13.10.4 ease动作 454

13.10.5 延迟动作 456

13.10.6 方法回调动作 456

13.10.7 代码块调用动作 460

13.11 cocos2d中的动画 462

13.11.1 cocos2d中动画相关的类 462

13.11.2 简单动画效果 463

13.11.3 使用精灵表单实现动画效果 464

13.12 cocos2d中的文本 466

13.12.1 cclabelttf类 466

13.12.2 cclabelbmfont类 467

13.13 cocos2d中的声音 470

13.13.1 simpleaudioengine 470

13.13.2 游戏中的声音设置选项功能实现 474

13.14 疯狂打飞机游戏 477

13.14.1 开始前的准备工作 477

13.14.2 添加游戏菜单项功能 478

13.14.3 预加载游戏资源 480

13.14.4 玩家飞机飞行效果 485

13.14.5 玩家飞机touch实现 487

13.14.6 背景滚动效果 488

13.14.7 添加敌机 491

13.14.8 玩家飞机添加子弹并射击 494

13.14.9 添加背景音乐 498

13.14.10 添加游戏积分统计 498

13.14.11 添加游戏大boss 500

13.15 本章小结 504

第14章 粒子效果、瓦片地图和物理引擎 505

14.1 粒子系统相关的类 506

14.1.1 ccparticlesystem类 506

14.1.2 ccparticlesystemquad类 511

14.1.3 ccparticlebatchnode类 512

14.2 cocos2d中内置的粒子系统 512

14.2.1 使用cocos2d内置的粒子系统 513

14.2.2 手动创建粒子系统类 514

14.3 使用particle designer生成粒子效果 517

14.3.1 particle designer粒子工具的使用 518

14.3.2 使用plist文件创建粒子系统 520

14.4 瓦片地图 520

14.4.1 下载和安装tiled地图编辑器 521

14.4.2 使用tiled绘制地图 522

14.5 tiled地图相关的类 527

14.5.1 cctmxtiledmap类 527

14.5.2 cctmxlayer类 529

14.5.3 cctmxobjectgroup类 530

14.6 在项目中使用tiled地图 530

14.7 真实手游:萌仙 535

14.7.1 设计地图场景 535

14.7.2 载入地图 535

14.7.3 地图的移动 537

14.7.4 物体遮挡效果 539

14.7.5 设置障碍物 542

14.7.6 寻路算法 544

14.7.7 随机出现怪物 549

14.7.8 玩家和怪物进行战斗 552

14.8 box2d物理引擎 559

14.8.1 物理引擎概述 559

14.8.2 box2d的核心概念 559

14.8.3 box2d常用的属性和方法 562

14.8.4 box2d模板项目hellobox2d 563

14.8.5 hellobox2d模板项目代码分析 565

14.8.6 cocos2d和box2d 573

14.8.7 box2d开发步骤 575

14.9 开发box2d项目 575

14.10 愤怒的小鸟 581

14.10.1 开始前的准备工作 581

14.10.2 制作游戏启动画面 581

14.10.3 进度条制作 582

14.10.4 游戏中的粒子效果 585

14.10.5 游戏选关操作 590

14.10.6 设计关卡数据 594

14.10.7 设计精灵类 596

14.10.8 游戏主界面 601

14.10.9 弹弓发射小鸟 604

14.10.10 整合box2d物理引擎 609

14.10.11 游戏过关设计 613

14.11 本章小结 616

本图书信息来源:互动出版

《疯狂iOS讲义(下)——iPhone/iPad高级应用与手游开发(含CD光盘1张)》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. IDEA创建Spring Boot项目

    首先安装Spring Boot CLI 先确定自己安装的JDK是1.8版本或者以上,然后下载Srping Boot CLI,Spring Boot CLI下载地址,下载下来是一个压缩包,解压,得到一个 ...

  2. 【转载】Node.js 教程(菜鸟教程系列)

    很好的一篇教程:Node.js 教程 简单做下笔记 概述 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立 ...

  3. 【HackerRank】How Many Substrings?

    https://www.hackerrank.com/challenges/how-many-substrings/problem 题解 似乎是被毒瘤澜澜放弃做T3的一道题(因为ASDFZ有很多人做过 ...

  4. 最小圆覆盖 gym-102006 I

    #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak ...

  5. 相等(==)、严格相等(===)、NaN、null、undefined、空和0

    (===)如果两个引用值指向同一个对象.数组.或函数,则他们是相等的.如果指向不同的对象,则他们是不相等的,尽管两个对象具有完全一样的属性. (==)如果其中一个值是true,则将其转换为1再进行比较 ...

  6. React Native网络编程之Fetch

    目录 1.前言 2.什么是Fetch 3.最简单的应用 4.支持的请求参数 - 4.1. 参数详讲 - 4.2. 示例 5.请求错误与异常处理   1. 前言   网络请求是开发APP中不可或缺的一部 ...

  7. Java 集合补充

    集合大致可以分List,Set,Queue,Map四种体系. 集合和数组不一样,数组元素可以是基本类型的值,也可以是对象(的引用变量),集合里只能保存对象(的引用变量). 访问:如果访问List集合中 ...

  8. mysql数据库查询表中相邻数据的差值

    select a.time ,a.sum - b.sum sum,a.time,b.time from ( rownum,) t order by time) a, ( rownum ,) t ORD ...

  9. odoo 模型与ORM

    型号属性 在/模型添加activity.py文件 class ActivityEvent(models.Model): _name = 'activity.event' _inherit = 'eve ...

  10. Java反射在Android中的使用

    转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6606687.html 做Java开发或者安卓开发的同学经常都会遇到这样一个问题,如果我们想调用A类里面的一 ...