iOS开发:从零基础到精通
iOS开发:从零基础到精通
前 言
第1部分 Objective-C语言基础
1 环境搭建
1.1 Xcode简介
1.2 创建App应用
1.2.1 下载安装Xcode
1.1.2 使用Xcode创建App
1.2.3 Xcode开发界面介绍
1.3 程序调试
1.3.1 App运行状态监控
1.3.2 UI界面分析
1.3.3 断点调试
1.4 Xcode常用快捷键
1.5 常用插件
1.5.1 苹果封锁第三方插件的原因
1.5.2 源码编辑器扩展
1.6 快捷代码段
1.6.1 如何创建代码段
1.6.2 常用代码段
2 数据类型与表达式
2.1 数据类型与常量
2.1.1 基本数据类型
2.1.2 限定词
2.1.3 id与instancetype
2.2 算术表达式
2.2.1 基本运算符
2.2.2 数据类型转换
2.3 循环结构
2.3.1 for循环
2.3.2 for-in循环
2.3.3 while循环
2.3.4 break与continue
2.4 选择结构
2.4.1 if语句
2.4.2 switch语句
2.4.3 条件运算符/三目运算符
2.5 typedef语句
3 类、对象与方法
3.1 类
3.1.1 类的定义
3.1.2 类的继承
3.2 属性
3.2.1 属性的定义
3.2.2 公有属性与私有属性
3.2.3 属性关键字
3.3 方法
3.3.1 方法的定义
3.3.2 方法的调用
3.3.3 方法的重写
3.4 对象
3.4.1 创建对象
3.4.2 对象操作
3.5 变量
3.5.1 局部变量
3.5.2 全局变量
3.5.3 静态变量
3.5.4 const关键字
4 Foundation框架
4.1 Foundation框架简介
4.2 字符串类
4.2.1 不可变字符串NSString
4.2.2 可变字符串NSMutableString
4.3 数组类
4.3.1 不可变数组NSArray
4.3.2 可变数组NSMutableArray
4.4 字典类
4.4.1 不可变字典NSDictionary
4.4.2 可变字典NSMutableDictionary
4.5 NSNumber类
4.6 NSDate类
4.7 NSFileManager类
4.7.1 文件操作
4.7.2 目录操作
4.7.3 枚举目录中的内容
4.7.4 文件的读取与写入
4.8 NSURL类
4.9 NSBundle类
5 Objective-C语言特性
5.1 代码块
5.1.1 Block简介
5.1.2 Block的参数与返回值
5.1.3 操作Block外部的变量
5.1.4 Block回调
5.2 分类
5.3 协议
5.3.1 协议简介
5.3.2 代理
5.4 KVC
5.4.1 使用KVC赋值取值
5.4.2 字典转模型
5.4.3 修改readonly的属性以及私有属性
5.5 KVO
6 Objective-C进阶
6.1 对象复制
6.1.1 浅复制与深复制
6.1.2 可变对象复制与不可变对象复制
6.1.3 自定义对象复制
6.2 内存管理
6.3 预编译指令
6.3.1 宏定义
6.3.2 include、 import与@class
6.3.3 条件编译
6.4 NSLog()函数
6.4.1 NSLog()函数基本使用
6.4.2 定制输入日志的格式
6.5 结构
6.5.1 结构的定义与基本使用
6.5.2 结构的嵌套
第2部分 iOS开发基础
7 基础UI控件
7.1 UIKit框架
7.2 视图UIView
7.2.1 UIView简介
7.2.2 视图UIView的外观
7.2.3 视图UIView的形变
7.2.4 视图UIView的层次关系
7.2.5 视图UIView的动画
7.2.6 响应用户交互事件
7.2.7 内容模式contentMode
7.2.8 图片拉伸
7.2.9 使用代码创建自定义UIView
7.2.10 使用XIB创建自定义UIView
7.2.11 控件改变坐标系(convertRect:)
7.3 图片控件UIImageView
7.3.1 基本使用
7.3.2 常用操作
7.3.3 帧动画功能
7.4 按钮控件UIButton
7.4.1 基本使用
7.4.2 按钮的创建
7.4.3 调整图标与标题的位置
7.5 文本控件UILabel
7.5.1 UILabel简介
7.5.2 常用的UILabel使用场景
7.6 提示框控件
7.7 文本输入框UITextField
7.7.1 UITextField的基本属性
7.7.2 UITextField的代理方法简介
7.7.3 UITextField的代理方法实例之键盘回收
7.7.4 UITextField的代理方法实例之字数限制
8 高级UI控件
8.1 滚动视图UIScrollView
8.1.1 UIScrollView基本使用
8.1.2 UIScrollView常用代理方法的实现
8.1.3 视图的缩放功能
8.2 表视图UITableView
8.2.1 UITableView基本介绍
8.2.2 UITableView的数据源方法
8.2.3 了解单元格UITableViewCell
8.2.4 UITableView创建示例
8.2.5 UITableView代理方法之点击单元格
8.2.6 UITableView代理方法之编辑单元格
8.2.7 UITableViewCell性能优化
8.2.8 分段Section
8.2.9 分段Section实现示例
8.2.10 自定义Cell
8.2.11 Cell高度的设置
8.2.12 动态调整Cell高度(self-sizing)
8.2.13 动态调整Cell高度(代码)
8.2.14 UITableView+FDTemplateLayoutCell计算Cell高度
8.2.15 改变Cell位置
8.2.16 UITableView的Header和Footer
8.2.17 去除多余的单元格分割线
8.3 集合视图UICollectionView
8.3.1 UICollectionView简介
8.3.2 UICollectionView数据源协议DataSource
8.3.3 最简单的集合视图实现
8.3.4 UICollectionView代理协议方法简介
8.3.5 UICollectionView代理方法实例
8.3.6 UICollectionViewFlowLayout简介
8.3.7 UICollectionViewFlowLayout使用实例
8.3.8 UICollectionViewDelegateFlowLayout类的代理方法实现
8.3.9 自定义Cell
8.4 手势UIGestureRecognizer
8.4.1 UIGestureRecognizer简介
8.4.2 点击手势UITapGestureRecognizer
8.4.3 捏合与旋转手势UIPinchGestureRecognizer
8.4.4 滑动手势UISwipeGestureRecognizer
8.4.5 拖动手势UIPanGestureRecognizer
8.4.6 长按手势UILongPressGestureRecognizer
9 控制器
9.1 控制器UIViewController
9.1.1 控制器简介以及创建控制器
9.1.2 使用XIB以及Storyboard创建控制器
9.1.3 控制器的生命周期
9.1.4 使用Storyboard切换控制器
9.1.5 使用代码切换控制器
9.1.6 控制器嵌套
9.2 导航控制器UINavigationController
9.2.1 导航控制器简介
9.2.2 控制器跳转
9.2.3 子控制器的管理
9.2.4 UINavigationBar
9.2.5 barStyle属性
9.2.6 barTintColor与tintColor
9.2.7 导航栏设置背景图片
9.2.8 UINavigationItem
9.2.9 UINavigationItem定制示例
9.2.10 UINavigationItem显示原始图片样式
9.2.11 UINavigationController的代理方法
9.2.12 顺传数据
9.2.13 使用代理逆传数据
9.2.14 使用通知逆传数据
9.2.15 使Block逆传数据
9.2.16 工具栏toolBar
9.3 UITabBarController
9.3.1 UITabBarController的常用属性和方法
9.3.2 UITabBar的常用属性和方法
9.3.3 UITabBarItem的常用属性和方法
9.3.4 微信TabBar实现
9.3.5 UITabBarController的代理协议
9.4 UIWindow、UIView与UIViewController关系
9.4.1 概念简介
9.4.2 关系描述
10 其他UI控件
10.1 WKWebView
10.1.1 WKWebView简介
10.1.2 WKWebView的基本使用——加载网页
10.1.3 网页浏览控制
10.1.4 加载本地文件
10.1.5 WKWebView代理协议之WKNavigationDelegate
10.2 UITextView
10.2.1 UITextView的基本使用
10.2.2 UITextView的代理方法
10.3 UIPageControl
10.3.1 UIPageControl介绍
10.3.2 UIPageControl实际应用
10.4 UIPickerView
10.4.1 UIPickerView简介
10.4.2 UIPickerView的基本使用
10.4.3 相互依赖的多列选择器
10.5 UISilder
10.5.1 UISlider基本介绍
10.5.2 UISlider实例
10.6 UIDatePicker
10.6.1 UIDatePicker基本介绍
10.6.2 UIDatePicker基本使用
10.7 UISegmentedControl
10.7.1 UISegmentedControl简介
10.7.2 UISegmentedControl实例
第3部分 iOS开发进阶
11 多线程
11.1 线程基础知识
11.2 GCD
11.2.1 GCD基本概念介绍
11.2.2 队列与任务组合
11.2.3 线程间通信
11.2.4 队列组dispatch group
11.2.5 延迟执行操作
11.3 NSOperation
11.3.1 NSOperation基本使用
11.3.2 线程间通信
11.3.3 任务间的执行依赖
12 网 络
12.1 网络开发基本概念介绍
12.2 常用网络协议之HTTP
12.3 网络请求之GET、POST请求
12.4 AFNetworking框架介绍
12.5 聚合数据API简介
12.6 GET请求与POST请求使用示例
12.7 JSON和XML简单介绍
13 数据持久化
13.1 沙盒
13.1.1 沙盒基础
13.1.2 在Mac上查看沙盒目录
13.2 Plist文件
13.2.1 Plist简介
13.2.2 Plist文件的读取
13.2.3 Plist文件的写入
13.2.4 操作实例
13.3 偏好设置NSUserDefaults
13.3.1 NSUserDefaults简介
13.3.2 读写示例
13.4 归档
13.4.1 基本使用
13.4.2 单个对象归档/解档
13.4.3 自定义对象归档/解档
13.4.4 归档多个自定义对象
13.4.5 子类对象的归档
13.4.6 归档多个不同类型的对象
13.5 SQLite
13.5.1 数据库的操作
13.5.2 表的操作
13.5.3 数据记录的操作
13.6 FMDB
13.6.1 基本介绍
13.6.2 更新操作与查询操作
13.6.3 线程安全
13.7 Core Data
13.7.1 概念简介
13.7.2 使用示例
13.8 Realm
13.8.1 Realm基本介绍
13.8.2 Realm的安装
13.8.3 常用属性与方法
13.8.4 Realm使用示例
14 绘图和动画
14.1 核心绘画
14.1.1 核心绘画的基本概念
14.1.2 贝塞尔路径
14.1.3 绘图方法和步骤
14.1.4 常见图形的绘制方法
14.2 UIImage绘图应用
14.2.1 绘制图片
14.2.2 添加水印
14.2.3 裁剪圆形图片
14.2.4 截屏
14.3 CALayer
14.3.1 CALayer简介
14.3.2 iOS开发中的坐标系
14.3.3 动画属性
14.4 核心动画
14.4.1 核心动画简介
14.4.2 动画的实现步骤
14.4.3 CAPropertyAnimiation属性动画
14.4.4 CABasicAnimiation基本动画
14.4.5 CAKeyframeAnimation关键帧动画
14.4.6 CASpringAnimation弹簧动画
14.4.7 CAAnimationGroup动画组
14.4.8 CATransition转场动画
15 设计模式
15.1 iOS下的MVC设计模式
15.2 单例模式
15.3 iOS下的MVVM设计模式
16 自动布局
16.1 自动布局简介
16.2 Masonry
17 设备调用
17.1 UIDevice类
17.1.1 获取设备基本信息
17.1.2 获取电池信息
17.1.3 接近传感器
17.1.4 方向传感器
17.2 位置应用
17.2.1 CoreLocation框架简介
17.2.2 CoreLocation框架的基本使用
17.2.3 地理信息编码简介
17.2.4 CLGeocoder应用案例1
17.2.5 CLGeocoder应用案例2
17.3 地图应用
17.3.1 MKMapView简介
17.3.2 MKMapView的基本使用
17.3.3 简易地图标注
17.3.4 简易地图标注示例
17.3.5 复杂地图标注
17.3.6 复杂地图标注示例
17.4 相机与相册
17.4.1 UIImagePickerController简介
17.4.2 UIImagePickerController的使用
17.5 CoreMotion框架
17.5.1 CoreMotion基本介绍
17.5.2 获取运动传感器的裸数据
17.5.3 CMDeviceMotion
17.6 系统应用调用
17.6.1 拨打电话功能
17.6.2 发送短信功能
17.6.3 发送邮件功能
18 证书管理与应用发布
18.1 证书管理
18.1.1 iOS开发证书(调试证书)管理
18.1.2 iOS发布证书创建详解
18.2 推送证书管理
18.2.1 推送调试证书
18.2.2 推送生产证书
18.3 App Store应用发布
18.3.1 App Store应用发布详解
18.3.2 App被拒绝上架的原因解析
19 消息推送
19.1 远程消息推送
19.1.1 极光(JPush)消息推送集成
19.1.2 获取推送消息内容
19.1.3 打开指定界面(自定义消息内容)
19.1.4 管理App的Badge(本地方式)
19.1.5 管理App的Badge(远程服务器方式)
19.1.6 更改推送消息提示音
19.2 本地消息推送(基于iOS 10 UserNotifications框架)
19.2.1 UNNotificationRequest类
19.2.2 UNNotificationContent类
19.2.3 UNNotificationTrigger类
19.2.4 UNUserNotificationCenterDelegate代理协议
19.2.5 示例代码
20 其他高级知识点
20.1 App的生命周期
20.2 使用AVFoundation框架实现扫描二维码
第4部分 常用第三方框架与工具
21 常用第三方框架介绍
21.1 CocoaPods
21.1.1 CocoaPods的安装
21.1.2 使用CocoaPods安装SDK
21.2 高德地图
21.2.1 高德地图简介
21.2.2 高德地图SDK的安装
21.2.3 地图SDK简介
21.2.4 绘制地图标注
21.2.5 定位SDK
21.3 SDWebImage
21.4 免费短信验证码
21.5 MBProgressHUD
21.5.1 MBProgressHUD简介
21.5.2 MBProgressHUD基本使用
21.6 YYModel
21.6.1 YYModel简介
21.6.2 YYModel使用案例
22 常用开发工具介绍
22.1 Reveal——AppUI界面分析
22.1.1 Reveal使用简介
22.1.2 分析任意iOS应用的UI界面
22.2 Charles——网络抓包工具
22.2.1 抓取HTTP请求(基础)
22.2.2 抓取HTTPS请求(高级)
22.3 GitHub
22.3.1 GitHub简介
22.3.2 GitHub Desktop桌面工具的安装
22.3.3 创建仓库
22.3.4 版本控制
22.3.5 分支branch操作
22.3.6 冲突处理
22.3.7 团队合作
第5部分 Swift语言基础
23 Swift语言基础
23.1 Swift简介
23.2 常量和变量
23.3 基本运算符
23.4 字符串和字符
23.5 集合类型
23.6 流程控制
23.6.1 循环语句
23.6.2 条件语句
23.6.3 控制转移语句
23.7 函数基础
23.8 函数类型
23.9 闭包
23.10 枚举
23.11 类和结构体
23.12 属性
23.13 方法
23.14 下标
23.15 继承
23.16 初始化
23.17 析构
23.18 扩展
23.19 协议
23.20 泛型
23.21 可选链
第6部分 React Native基础
24 React Native基础
24.1 搭建React Native开发环境
24.2 编写Hello World
24.3 属性Props
24.4 状态State
24.5 样式style
24.6 界面布局
24.7 网络
24.8 Text组件
24.9 Image组件
24.10 Button组件
24.11 TouchableHighlight组件
24.12 TextInput组件
24.13 KeyboardAvoidingView组件
24.14 ScrollView组件
24.15 ListView组件
24.16 Navigator组件
24.17 TabBarIOS组件
思维导图
防止博客图床图片失效,防止图片源站外链:
http://www.processon.com/chart_image/5e5b2a3ce4b0cc44b5b4968c.png)
思维导图在线编辑链接: