疯狂iOS讲义(基础篇)(含光盘1张)

Author: 李刚  

Publisher: 电子工业出版社‎

Publication year: 2016

E-ISBN: 9787121287930

P-ISBN(Hardback):  9787121287930

Subject: TN929.53 cellular mobile communication system (cellular phone, a mobile telephone handset)

Keyword: 蜂窝式移动通信系统(大哥大、移动电话手机)

Language: CHS

Access to resources Favorite

Disclaimer: Any content in publications that violate the sovereignty, the constitution or regulations of the PRC is not accepted or approved by CNPIEC.

Description

本书基于《疯狂iOS讲义(上)》第2版升级而来,已真正升级成Swift、Objective-C双语讲解。本书所有案例(除前面介绍Objective-C语法部分之外)全部都提供Swift、Objective-C两种语言的版本。本书以最新的iOS 9.2、Xcode 7.2为平台,全面介绍了iOS应用开发的基础知识。书中每个案例、每个截图都全面升级到iOS 9.2。本书全面、细致地介绍了Objective-C的面向对象语法、Foundation框架的核心类库用法、文件IO体系等,详细讲解了iOS应用开发的基本理论,以及iOS应用的MVC设计和事件处理编程,重点介绍了iOS界面编程、iOS应用的生命周期、Quartz 2D绘图、坐标变换、Core Image滤镜等内容,掌握这些基础内容之后,即可开发出基础的iOS App应用和简单的iOS游戏。本书最后介绍了一个疯狂连连看的实例。本书详细介绍了iOS 9新增的UIAlertController、UIStackView控件,其中UIStackView正是为了自适应不同尺寸屏幕而设计的控件,可用于取代早期iOS开发中的约束(约束实在是太难以管理了)。本书还重点介绍了Xcode 7提供的Storyboard Reference,通过使用Storyboard Reference,可以对大型iOS App的界面设计进行分解、重构,从而保证项目具有更好的可维护性。本书从“项目驱动”的角度来讲授理论,全书一共包括近百个实例,这些示范性的实例既可帮助读者更好地理解各知识点在实际开发中的应用,也可供读者在实际开发时作为参考,拿来就用。如果读者在阅读本书时遇到了技术问题,可以登录疯狂Java联盟(http://www.crazyit.org)发帖,笔者将会及时予以解答。

Chapter

6.3 类别与扩展

6.3.1 类别(category)

6.3.2 利用类别对类进行模块化设计

6.3.3 使用类别来调用私有方法

6.3.4 扩展(extension)

6.4 协议(protocol)与委托

6.4.1 规范、协议与接口

6.4.2 使用类别实现非正式协议

6.4.3 正式协议的定义

6.4.4 遵守(实现)协议

6.4.5 协议与委托(delegate)

6.5 使用@try处理异常

6.5.1 使用@try...@catch...@finally捕获异常

6.5.2 访问异常信息

6.5.3 使用@finally回收资源

6.5.4 抛出异常与自定义异常类

6.6 Objective-C反射机制

6.6.1 获得Class

6.6.2 检查继承关系

6.6.3 动态调用方法

6.7 手动内存管理

6.7.1 对象的引用计数

6.7.2 对象所属权

6.7.3 方法中的保留和释放

6.7.4 使用自动释放池

6.7.5 自动释放池的销毁时机与工作过程

6.7.6 临时对象与事件循环中的自动释放池

6.7.7 手动内存管理的规则总结

6.8 自动引用计数

6.8.1 自动引用计数概述

6.8.2 @autoreleasepool块

6.8.3 使用弱引用解决强引用循环

6.9 本章小结

第7章 Foundation框架详解

7.1 字符串(NSString与NSMutableString)

7.1.1 创建字符串

7.1.2 NSString的常用功能

7.1.3 可变字符串(NSMutableString)

7.2 日期与时间

7.2.1 日期与时间(NSDate)

7.2.2 日期格式器(NSDateFormatter)

7.2.3 日历(NSCalendar)与日期组件(NSDateComponents)

7.2.4 定时器(NSTimer)

7.3 对象复制

7.3.1 copy与mutableCopy方法

7.3.2 NSCopying与NSMutableCopying协议

7.3.3 浅复制与深复制

7.3.4 setter方法的复制选项

7.4 Objective-C集合概述

7.5 数组(NSArray与NSMutableArray)

7.5.1 NSArray的功能与用法

7.5.2 对集合元素整体调用方法

7.5.3 对NSArray进行排序

7.5.4 使用枚举器遍历NSArray集合元素

7.5.5 快速枚举(for-in)

7.5.6 可变数组(NSMutableArray)

7.5.7 NSArray的KVC与KVO

7.6 集合(NSSet与NSMutableSet)

7.6.1 NSSet的功能与用法

7.6.2 NSSet判断集合元素重复的标准

7.6.3 NSMutableSet的功能与用法

7.6.4 NSCountedSet的功能与用法

7.7 有序集合(NSOrderedSet与NSMutableOrderedSet)

7.8 字典(NSDictionary与NSMutableDictionary)

7.8.1 NSDictionary的功能与用法

7.8.2 对NSDictionary的key排序

7.8.3 对NSDictionary的key进行过滤

7.8.4 使用自定义类作为NSDictionary的key

7.8.5 NSMutableDictionary的功能与用法

7.9 谓词

7.9.1 定义谓词

7.9.2 使用谓词过滤集合

7.9.3 在谓词中使用占位符参数

7.9.4 谓词表达式语法

7.10 本章小结

第8章 文件I/O

8.1 使用NSData与NSMutableData

8.2 使用NSFileManager管理文件和目录

8.2.1 访问文件属性和内容

8.2.2 创建、删除、移动、复制

8.2.3 查看目录包含的内容

8.3 使用NSPathUtilities.h管理路径

8.4 使用NSProcessInfo获取进程信息

8.5 使用NSFileHandle处理文件IO

8.6 使用NSURL读取网络资源

8.7 使用NSBundle处理项目相关资源

8.8 对象归档

8.8.1 使用NSKeyedArchiver归档

8.8.2 实现NSCoding协议

8.8.3 使用NSData完成自定义归档

8.8.4 使用归档实现深复制

8.9 本章小结

第9章 iOS应用开发入门

9.1 从iOS项目开始

9.1.1 iOS项目包含的文件

9.1.2 Interface Builder简介

9.1.3 添加控件

9.1.4 修改控件属性

9.1.5 UIView支持的属性

9.1.6 UILabel支持的属性

9.2 MVC

9.2.1 程序入口和应用程序代理

9.2.2 理解iOS的MVC

9.2.3 掌握UIViewController控制器

9.3 事件机制

9.3.1 程序获取控件的两种方式

9.3.2 事件处理的三种方式

9.4 代码控制UI界面

9.4.1 不使用界面设计文件开发UI界面

实例:无界面设计文件开发iOS应用

9.4.2 使用代码创建UI界面

实例:动态添加、删除标签

9.4.3 自定义UI控件

实例:跟随手指运动的小球

9.5 美化iOS应用

9.5.1 定制iOS应用图标

9.5.2 定制iOS应用的启动画面

9.6 本章小结

第10章 iOS界面编程之基础控件

10.1 UI控件概述

10.1.1 活动、静态和被动控件

10.1.2 UIControl基类介绍

10.2 按钮(UIButton)

实例:丰富多彩的按钮

10.3 文本框控件(UITextField)

实例:用户登录界面

10.3.1 完成输入后关闭键盘

10.3.2 触碰背景关闭键盘

10.4 多行文本控件(UITextView)

10.4.1 UIScrollView支持的属性

10.4.2 使用委托对象处理UITextView事件

实例1:通过导航按钮关闭虚拟键盘

实例2:通过自定义键盘附件关闭虚拟键盘

10.4.3 自定义选择内容后的菜单

10.5 开关按钮(UISwitch)

实例:使用开关控制“手电筒”

10.6 分段控件(UISegmentedControl)

实例:通过分段控件控制背景颜色

10.7 图像控件(UIImageView)

实例1:图片浏览器

实例2:“幻灯片”播放器

10.8 进度条

10.8.1 UIProgressView

实例:定制进度条

10.8.2 UIActivityIndicatorView

10.9 拖动条(UISlider)

实例:通过拖动滑块改变图片透明度

10.10 iOS 9的警告框(UIAlertController)

10.10.1 弹出式警告框

10.10.2 带输入框的警告框

10.11 日期选择器(UIDatePicker)

10.12 选择器(UIPickerView)

10.12.1 单列选择器

10.12.2 多列选择器

10.12.3 相互依赖的多列选择器

10.12.4 自定义选择器视图

实例:“老虎机”游戏

10.13 iOS 8新增的UIVisualEffectView

10.14 微调器(UIStepper)

10.15 网页控件(UIWebView)

实例:迷你浏览器

10.16 工具条(UIToolBar)

实例:自定义工具条控件

10.17 本章小结

第11章 高级控件与特殊视图控制器

11.1 iOS 9新增的UIStackView

实例:嵌套UIStackView实现复杂界面

11.2 表格(UITableView)与表格控制器(UITableViewController)

11.2.1 简单表格

11.2.2 处理单元格的选中

实例:编辑选中行

11.2.3 定制表格行

实例1:继承UITableViewCell定制表格行

实例2:使用动态单元格原型定制表格行

11.2.4 编辑表格

11.2.5 多分区表格以及分区索引

11.2.6 直接使用UITableViewController

11.2.7 静态单元格

11.2.8 使用UIRefreshController刷新表格

11.3 搜索条(UISearchBar)

11.3.1 使用搜索条

11.3.2 使用UISearchController

11.4 导航条(UINavigationBar)与导航控制器(UINavigationController)

11.4.1 使用导航条

11.4.2 使用UINavigationController

实例:查看、编辑图书信息

11.4.3 使用segue导航

11.5 segue详解

11.5.1 使用segue控制过渡

11.5.2 Xcode 7新增的Storyboard Reference

11.6 网格(UICollectionView)与网格控制器(UICollectionViewController)

11.6.1 UICollectionView的功能与用法

11.6.2 使用UICollectionViewDelegateFlowLayout定制布局

实例:单元格大小不同的网格

11.6.3 扩展UICollectionViewLayout定制布局

实例:环形布局的UICollectionView

11.6.4 多分区网格

实例:带页眉、页脚的多分区网格

11.6.5 直接使用UICollectionViewController

11.7 标签条(UITabBar)与标签页控制器(UITabBarController)

11.7.1 使用UITabBar

11.7.2 使用UITabBarController

11.7.3 在Storyboard中使用UITabBarController

11.8 页控件(UIPageControl)与页控制器(UIPageViewController)

11.8.1 UIPageControl与UIScrollView结合使用

11.8.2 使用UIPageViewController

11.9 iPad应用开发

11.10 本章小结

第12章 管理iOS应用的运行

12.1 iOS设备尺寸和自动旋转机制

12.1.1 配置应用支持的方向

12.1.2 指定视图控制器支持的方向

12.2 旋转时重构用户界面

12.3 自动布局

12.3.1 自动布局的添加方式

12.3.2 使用自动布局适应不同尺寸的屏幕

12.3.3 使用Size Class适应屏幕旋转

12.4 iOS应用的生命周期

12.4.1 应用程序的状态

12.4.2 应用程序启动过程

12.4.3 程序入口:main函数

12.4.4 响应中断

12.4.5 进入后台

12.4.6 返回前台运行

12.4.7 应用程序中止

12.4.8 Main Run Loop

12.5 本章小结

第13章 图形、图像与动画

13.1 使用UIImage和CGImage处理位图

13.1.1 显示动画

13.1.2 UIImage与CGImage

13.2 Quartz 2D绘图

13.2.1 Quartz 2D绘图基础:CGContextRef

13.2.2 绘制几何图形

13.2.3 点线模式

13.2.4 绘制文本

13.2.5 设置阴影

13.2.6 使用路径

实例:绘制任意多角星

13.2.7 绘制曲线

实例:使用曲线绘制多瓣花朵

13.2.8 在内存中绘图

实例:绘图板

13.2.9 绘制位图

实例:扩展UIImage的功能

13.3 图形变换

13.3.1 使用坐标变换

13.3.2 坐标变换与路径结合使用

实例:雪花飘飘

13.3.3 使用矩阵变换

13.4 控制叠加模式

13.5 处理填充

13.5.1 渐变填充

13.5.2 模式填充

13.6 动画

13.6.1 Core Animation动画基础

13.6.2 使用CALayer

13.6.3 使用CATransition控制过渡动画

13.6.4 使用属性动画

13.6.5 控制移动路径

实例:绕圈游动的小鱼

13.7 本章小结

第14章 疯狂连连看

14.1 游戏简介

14.2 开发游戏界面

14.2.1 开发界面布局

14.2.2 开发游戏界面控件

14.2.3 处理方块之间的连接线

14.3 游戏的状态数据模型

14.3.1 定义数据模型

14.3.2 初始化游戏状态数据

14.4 加载界面的图片

14.5 实现游戏视图控制器

14.6 实现游戏逻辑

14.6.1 GameService分析与初步实现

14.6.2 获取触碰点的方块

14.6.3 判断两个方块是否可以相连

14.6.4 定义获取通道的工具方法

14.6.5 没有转折点的横向连接

14.6.6 没有转折点的纵向连接

14.6.7 有一个转折点的连接

14.6.8 有两个转折点的连接

14.6.9 找出最短距离

14.7 本章小结

The users who browse this book also browse


No browse record.