项目需求:做一个图片浏览器,点击图片查看大图,大图模式下,左右滚动能查看不同的图片.
项目的主要核心技术:图片的弹出和消失动画
一.对代码进行重构
1.对代码进行抽取划分
1.1 为什么要对代码进行抽取?
swift中,代码全部写在一起,阅读性极差
2.如何对代码进行抽取?
2.1在oc中,可以把功能模块抽取一个个方法
2.2swift中,专门提供 extension ,可以对原有的类进行扩展
3.怎么使用extension 抽取代码?
3.1 把一些方法写在extension(扩展)里面,这样能减少viewDidLoad里面的代码
3.2 extension可以写多个,这样就可以把不同的功能模块 ,写在不同的扩展里面
二.项目基本设置
1.修改bundleID
2.部署版本
3.设置项目图片,启动图片
4.对文件夹目录进行划分
三.首页布局
1.让首页为UICollectionViewController
2.设置数据源
3.自定义布局
3.1 创建一个源文件,继承自UICollectionViewFlowLayout
3.2 重写 prepareLayout
3.3 设置布局的相关属性
4.如何设置StoryBoard中的UICollectionViewController的布局
4.1 在StoryBoard中选中collectionView
4.2 在属性里找到 layout 设置为自定义 custom
4.3 在下面的class里面 把自定义布局的类名写进去即可
四.网络工具类的封装
1.集成CocoaPods, 并导入AFNetworking框架
1.1 打开终端,进入项目路径下 cd 路径
1.2 创建PodFile文件 pod init
1.3 配置PodFile文件 ,写入要导入的框架
1.4 导入框架 pod install —no-repo-update / 或 pod intall
1.41 pod install 会更新本地库(本地已有的框架也会更新) 速度相对较慢
1.42 pod install —no-repo-update 不会更新本地库,速度相对来说快点
2.封装工具类
2.1 将工具类设计成单例对象
防止别人修改
防止多线程访问,创建多个对象
2.2 swift中单例的设置方式
static let shareInstance : NetworkTools = NetworkTools()
2.3 可以让工具类,直接继承自用到框架的一个类
好处:自己就是这个类的子类,拥有这个类的所有方法和属性,用的时候直接自己就能调用
3.封装网络请求方法