黑马行是一款运动计步类项目。包含了高德地图的使用,用户运动轨迹的追踪与绘制,父子控制器和强引用控制器的区别,使用图层实现界面的渐变色,自定义转场动画,根据卫星定
* 第一章 CoreData/
* CoreData基础/
* 01-01-CoreData介绍
* 01-02-快速体验需求确立/新建项目,界面准备
* 01-03-建立数据模型
* 01-04-快速体验新增用户的操作
* 02-01-新增数据小结
* 02-02-查询数据并且绑定在表格上
* 02-03-查询小结
* 02-04-修改数据以及监听数据变化
* 03-01-删除用户数据
* 03-02-对象图概念/数据表结构变化演练
* 03-03-快速体验小结
* 03-04-架构探索目标确定
* 03-05-强调框架探索的目的,新建项目准备CoreData单例
* 04-01-使用默认的构造函数实例化容器并且创建数据库
* 04-02-对持久化容器的构造函数的扩展,演示多个数据模型的合并
* 04-03-介绍打开/新建/修改数据库的同步执行方法
* 04-04-打开数据库错误原因/数据迁移概念简介
* 04-05-[扩展]强行退出应用程序
* 05-01-介绍了CoreData中的线程安全
* 05-02-CoreDataStack思维导图梳理
* 05-03-强调Stack结构的作用,抛出低版本适配需求
* 05-04-用代码的方式依次建立CoreData核心对象,完成对低版本的兼容
* 06-01-设置数据库选项,实现数据迁移
* 06-02-强调互斥锁的作用,删除持久化容器
* 06-03-复制 saveContext 方法,注意事务的概念
* CoreData实战演练/
* 01-01-确定实战演练需求
* 01-02-建立用户和城市的一对多关系,生成管理对象子类
* 01-03-增加测试数据 - 给城市添加多个用户
* 01-04-没有分组的加载用户数据
* 01-05-按照分组方式加载并且显示数据
* 02-01-CoreData小结
* 第二章 项目准备/
* 项目准备/
* 01-01-项目介绍和运动元素分析
* 01-02-部署项目
* 01-03-回顾第三方框架使用步骤/安装高德地图SDK
* 02-01-注册高德App Key
* 02-02-[扩展先放]关闭Xcode8控制台输出
* 02-03-添加地图/第01阶段小结
* 第三章 运动模块/
* 地图和大头针/
* 01-01-准备运动主界面
* 01-02-定义运动中控制器,实现界面跳转,定义运动类型枚举
* 01-03-父子控制器开发目标的确定
* 02-01-以父子控制器加载地图控制器/运动模块架构搭建小结
* 02-02-添加地图视图/隐藏比例尺
* 02-03-关闭相机旋转/2D和3D地图的区别
* 03-01-高德地图和苹果原生地图的对比
* 03-02-显示用户位置/设置追踪模式
* 03-03-更新高德地图框架版本
* 03-04-允许后台定位/禁止系统暂停定位
* 03-05-明确起点大头针的目标/查阅高德相关文档
* 03-06-介绍了位置数据
* 04-01-添加大头针
* 04-02-自定义大头针
* 04-03-自定义大头针视图思维导图
* 04-04-根据运动类型来创建运动图像
* 04-05-使用运动轨迹模型承担运动图像的创建
* 绘制轨迹/
* 01-01-确定绘制运动轨迹的开发目标/阅读官方文档
* 01-02-点击地图,添加折线对象,分析添加折线的流程
* 01-03-实现自定义折线绘制/对比大头针和折线的实现方式
* 01-04-明确轨迹追踪线条模型的目的
* 01-05-定义轨迹追踪线条模型,承担绘制两点间的折线工作
* 02-01-运动地图控制器 和 模型 之间的关系
* 02-02-绘制运动轨迹,同时实现了轨迹数据的优化
* 02-03-大头针和轨迹小结
* 运动数据/
* 01-01-自定义MAPolyline子类目标确定,折线模型中需要颜色
* 02-01-自定义 polyline 子类的方法实现,替换地图中的颜色
* 02-02-计算平均速度,速度的单位转换
* 02-03-根据运动速度,调整运动轨迹颜色
* 02-04-梳理根据速度设置运动轨迹颜色的思路,确定下一步开发目标
* 03-01-快速浏览 CLLocation 的头文件,利用时间戳进一步优化地图轨迹
* 03-02-计算两点间的运动数据:时间/距离
* 03-03-利用 KVC 计算运动汇总数据
* 04-01-明确运动界面调整需求
* 04-02-使用 Storyboard 实现父子控制器,获取子控制器,以及传递运动轨迹模型
* 04-03-在模型中增加运动状态枚举,调整模型构造函数
* 04-04-运动的暂停和继续实现
* 05-01-运动数据计算小结
* 第四章 自定义转场/
* 自定义转场/
* 01-01-阶段性目标确定
* 01-02-明确开发步骤,测试项目准备
* 01-03-CAShapeLayer和layer.mask属性简单演练
* 01-04-计算动画需要的初始位置和结束位置
* 01-01-实现了 ShapeLayer 的动画效果
* 01-02-CAShaperLayer动画小结&自定义转场的切入点
* 01-03-项目调整,设置展现样式为自定义
* 01-04-新建/设置转场动画代理
* 01-05-实现了 UIViewControllerTransitioningDelegate 协议
* 02-01-实现 UIViewControllerAnimatedTransitioning 的代理方法
* 02-02-动画代理方法的简单小结
* 02-03-添加圆形动画方法,存在动画没有完成,就告诉系统转场完成的问题
* 02-04-通过动画代理,跟踪动画完成,在完成时通知上下文转场结束
* 03-01-[扩展]动画代理设置的扩展
* 03-02-解除转场动画效果实现/解决循环引用!!!
* 03-03-同心圆放大/缩小示意图小结
* 03-04-自定义转场动画小结
* 03-05-[扩展]内存图使用工具扩展
* 第五章 运动地图界面/
* 运动地图界面/
* 01-01-运动地图界面布局目标确定
* 01-02-解决模态展现无法持续记录运动轨迹的思路
* 01-03-项目准备,按钮过小的处理
* 01-04-使用传统的模态展现,验证运动数据无法持续保存
* 02-01-使用强引用属性保留运动数据
* 02-02-在 awakeFromNib 方法中设置地图视图,立即开始定位用户位置
* 02-03-[扩展]父子控制器 和 强引用控制器属性 的对比
* 02-04-导入同心圆转场动画器,设置动画的初始位置
* 02-05-设置指南针位置代码实现
* 03-01-设置指南针的位置,并且小结
* 03-02-明确地图视图控制器显示细节需要修改的点
* 03-03-修改地图视图层次/将用户设置在地图中心点
* 03-04-修改大头针起点位置
* 03-05-毛玻璃效果&运动数据UI布局
* 03-06-自定义字体的实现以及细节
* 01-01-在地图界面显示运动数据
* 01-02-抽取了时间计算属性,并且介绍了跳秒的原因以及降低能耗的考虑
* 01-03-利用popover实现地图类型选择的目标确定
* 01-04-popover的界面准备工作
* 01-05-验证 popover 和传统模态之间的区别
* 01-06-地图模型选择弹窗实现
* 02-01-设置 popover 展现视图的大小,调整箭头方向
* 02-02-点击按钮设置地图类型
* 02-03-设置地图模式按钮的选中状态
* 02-04-地图类型选择按钮的性能优化,增加关闭按钮
* GPS/
* 03-01-设置 GPS 信号监测按钮
* 03-02-GPS信号强度监测需求确定
* 03-03-定义 GPS 信号的枚举,代码准备工作
* 03-04-[扩展]Xcode 8 真机调试时不需要设置 OS_ACTIVITY_MODE
* 03-05-验证 speed 为-1时,监测到的室内定位结果
* 04-02-测试两个定位点之间的时间差值
* 04-03-介绍利用两个定位点的时间差值判断GPS的思路
* 04-04-利用通知发送时间差值,准备在真机验证 GPS 信号强度的结果
* 04-05-GPS强度测试结论以及用户体验分享
* 05-01-确认 GPS 信号强度修改步骤
* 05-02-计算GPS强度枚举/修改通知参数/恢复控制器代码
* 05-03-新建GPS强度按钮,利用通知获取GPS强度枚举
* 05-04-根据 state 设置按钮的基本显示,图像未处理
* 05-05-利用 IB_DESIGNABLE 通过 Storyboard 直接区分是否是地图按钮
* 05-06-GPS断开连接的两种可能介绍
* 05-07-GPS断开的处理,以及极端环境的开发思路分享
* 06-01-地图控制器开发小结
* popover/
* 06-02-明确popover的开发目标,代码准备工作
* 06-03-通过代码的方式,实现popover的基本展现
* 06-04-popover的显示细节
* 第六章 监控控制器/
* 监控控制器/
* 01-01-明确监控界面开发的目标
* 01-02-全屏布局中需要使用比例和容器视图
* 01-03-增加数字面板,调整视图层次结构
* 01-04-数字面板中的标签布局
* 01-05-设置控制面板状态按钮的布局
* 01-06-设置相机/锁屏/设置按钮的布局
* 02-01-全屏布局工作的小结
* 02-02-明确线性渐变的开发需求/基本准备
* 02-03-设置背景图层,复习图层的几个基本属性
* 02-04-实现了线性渐变图层效果
* 02-05-使用代理反向传值,更新监控控制器UI
* 03-01-明确运动状态切换的目标/按钮约束连线
* 03-02-设置按钮的分开约束/在Storyboard中约束连线错误查找技巧
* 03-03-根据参数隐藏暂停按钮以及动画效果实现
* 03-04-明确自动切换运动状态的目标
* 03-05-分析运动状态检测的程序入口/方法的准备
* 03-06-从`继续到暂停`的运动状态的修改
* 04-01-调试地图控制器的代理方法/实现从暂停到继续的状态切换
* 04-02-明确模拟状态按钮点击操作的目标
* 04-03-根据运动状态的变化,模拟状态按钮的点击
* 04-04-监控界面布局小结
* 第七章 语音播报/
* 语音播报/
* 01-01-语音播报功能介绍
* 01-02-确定语音播报模型/接口方法的定义
* 01-03-语音播报基本方法的实现
* 01-04-确认在监控控制器调用语音播报方法
* 01-05-在监控控制器中实例化语音播报器,并且测试语音播报方法调用
* 02-01-单位距离语音播报解题思路确定
* 02-02-利用单位距离和末次播报距离实现整公里播报处理
* 02-03-使用语音合成器实现语音播报
* 02-04-介绍使用 mp3 进行拼接播报的思路/添加声音素材包
* 02-05-加载声音素材的 JSON 并且生成字典
* 02-06-使用 AVPlayer 测试播放一个 mp3 的音频文件
* 01-01-播放开始/状态切换的语音
* 01-02-播报数组中的第一项内容
* 01-03-利用通知监听播放条目播放完成事件
* 01-04-播报数组中语音的思路建立
* 01-05-顺序播放音频键值数组中的语音
* 01-06-确定数字和时间播放的思路
* 02-01-利用框架实现数字和时间的转换
* 02-02-利用流程图梳理语音播放器的代码
* 02-03-多个音乐以及后台播放的目标确定
* 02-04-利用音乐会话的分类允许多个应用程序的音乐同时播放
* 03-01-激活/禁用音乐会话,以及音乐会话的简单小结
* 03-02-允许后台播放音频
* 第八章 拍照分享/
* 拍照分享/
* 01-01-项目地图回顾&拍照分享目标确定
* 01-02-利用思维导图明确开发目标和开发步骤
* 01-03-准备相机控制器并且添加图片素材
* 01-04-相机界面的简单布局+状态栏隐藏
* 02-01-左右快门视图的自动布局
* 02-02-激活和禁用约束会提升性能
* 02-03-利用禁用和启用约束的方式,实现快门视图的动画
* 02-04-快门中心图片的布局
* 03-01-利用 CGContextClearRect 函数清除指定区域的显示内容
* 03-02-使用 CGContextClearRect 清除图像视图的背景颜色内容
* 03-03-绘制中间的分割线,完成快门动画效果
* 03-04-减少裁切区域避免边缘出现线条的问题
* 03-05-自定义相机的四大核心对象
* 04-01-在设置拍摄会话方法中获取输入设备-后置摄像头
* 04-02-将输入设备/输出图像添加到拍摄会话
* 04-03-添加预览图层,开始拍摄
* 04-04-设置取景框的拉伸效果
* 01-01-明确对调摄像头以及拍照保存的开发目标
* 01-02-抽取拍摄设备方法,为切换摄像头做准备工作
* 01-03-前后摄像头的对调
* 01-04-解决一个问题:图层顺序问题
* 02-01-拍照和保存
* 02-02-修改三目的错误并且判断图像数据的采样缓冲区是否为空
* 02-03-拍摄的照片需要裁切上下两部分的原因分析
* 02-04-利用图像上下文来裁切图像
* 02-05-在 XIB 中添加水印图像视图和距离标签
* 03-01-生成水印图像以及绘制距离标签
* 03-02-明确保存照片完成后的动画目标
* 03-03-拍照完成提示动画,通过delay参数延迟动画效果
* 03-04-拍照完成之后静止画面
* 03-05-快门按钮翻转动画需求确定
* 03-06-快门按钮翻转
* 04-01-镜头切换/分享按钮翻转
* 04-02-自定义相机简单小结
* 04-03-明确ShareSDK的目标以及步骤
* 04-04-访问官网注册应用程序
* 04-05-添加了SharedSDK框架
* 04-06-在info.plist 中设置Scheme白名单保证在iOS 9.0以上能够实现应用间跳转
* 05-04-复制/修改SharedSDK的注册应用程序的代码
* 05-05-复制/调整/简单阅读了SharedSDK的分享代码
* 05-06-使用成员变量传递要分享的照片/实现了OAuth方式的微博分享
* 05-07-增加简体中文/解决SharedSDK不显示中文的问题
* 06-01-实现 SSO 跳转应用程序并分享
* 06-02-演示新浪微博的BundleId在应用程序分享中的作用
* 06-03-屏蔽短信等分享按钮/关闭窗口/分享小结





![[衡天云]爆款云服务器 低至12元/月](/hty.png)