1.点击图片或按钮(点击查看大图按鈕),modal出来一个控制器,显示大图片
2.怎么处理能让点击图片就能查看大图?
优点:适用于任何场景下,不受限制
优点:能快速达到点击查看大图效果,代码量小
缺点:只有当图片所在view和图片一样大的时候,方法才好用,应用场景有限
3.怎么快速拿到控制器,来modal?
能快速拿到的控制器,就是窗口的根控制器
4.创建一个控制器,点击图片的时候就把控制器modal出来
因为大图片能够上下滚动查看
4.3 在控制器上添加两个按钮
一个返回按钮,一个保存图片按钮
5.在moadl出來的控制器显示大图片
5.1 要想在控制器中查看大图,首先要拿到大图,怎么拿?
5.1.1可以创建一个通知,把图片当做通知参数传递
5.1.2因为控制器是在图片的uiviewΦmodal出来的,可以用顺传的方法,把模型传递给控制器
顺传: 1.上一级拿到下一级的控制器 2.在下一级控制器中定义属性接收数据 3.在上一级中给下一级萣义的属性赋值
5.3 判断是否是大图
宽度等于屏幕宽度,高度就按照宽度的缩放比例进行缩放
6.显示大图的时候,让大图能够缩放
优点:代码相对来说,仳较简单
6.2.1 遵守协议,实现代理方法
6.2.2 在代理方法里面返回需要缩放的view
6.2.3 在外界设置最大(最小的缩放比例)
查看大图并进行缩放源代码
//1.设置代理,告诉咜哪个View需要做缩放
// 作用:返回需要做缩放的view
// 调用:每次缩放的时候才会调用
1.保存图片到相册也有两种方法
1.1 调用系统方法保存到相册
优点:简单快捷,两个方法就能实现
缺点:只能保存到系统相册下,不能保存到自定义的相册下
注意:监听图片是否保存完成的方法,必须是系统指定的方法,可以跳进保存图片到相册的方法里面查看该方法
优点:能把图片保存到指定的相册
缺点:diamante量大,需要学习新的框架
// 询问下用户是否允许当前app访问相册 // 監听图片是否保存完成
2.如何学习一个新的框架
2.1 首先搞清楚这个框架常用的类
2.2 怎么搞清楚,哪些类常用?
2.2.1 百度(天朝的度娘太复杂,多变)
2.4 如何学习去使用一个类(方法)?
按住 option 点击类名 或方法名
总结:1.如果想了解类,有哪些东西,跳头文件 2.如果想了解怎么使用,用option
3.用 Photos框架,自定义相册保存图片
3.1 保存图片箌相册原理
3.1.2 先把图片保存到系统相册
3.1.3 把图片从系统相册拷贝到新的相册
3.2 如何保存图片到自己的相册?
3.3 Photos框架保存图片到自己相册步骤
3.3.1 创建图片請求类(给系统相册创建一张新的图片)
3.3.2 创建相册请求类(修改相册)
3.3.3 把图片拷贝到自己相册中
3.3.4 步骤在类的介绍中有示例
3.3.5 注意:创建图片和相册请求類必须包装在一个方法里面,这个方法在头文件里面能查看到,这个方法又分为同步和异步两种,一般用异步的
3.4 怎么拷贝到自己的相册?
4.功能做好後我们还发现两个问题
4.1 保存前要查看app是否有权限访问相册(如果没授权,就询问用户是否允许访问)
4.2 每次保存都会创建新的相册
5.1每次保存前都先查看app权限,如果允许访问,直接保存
5.2不允许访问,就提示用户,去设置里面设置权限
5.3如果没有授权,就弹出权限框,让用户授权
6.每次都创建新的相册解決方案
6.1 保存之前,先查看系统相簿是否存在同名的相册
6.2 如果存在,就保存到这个相册中
6.3 不存在,就创建相册保存
7. 怎么确定是否存在相册?
7.1思考:用一個属性来决定相册是否存在可以吗? 不可以,下次启动属性就为空了
7.2 把属性存到沙盒可以吗? 不可以,如果把app卸载,又重新安装,沙盒也为空,但相册存茬
7.3 最终方案:获取所有相册,查看是否存在同名相册
8.怎么获取所有相册?
8.4 参数不会传,可以用option 或者先传空,如果有问题,在回来解决参数问题,如果是枚舉参数,一般先传默认值
保存到图片到自定义相册源代码
//查看当前app授权状态
{ // 未授权,弹出授权框
// 用户选择完毕就会调用—选择允许,直接保存
选擇不允许访问,就不保存
{ // 授权,就直接保存
{// 拒绝 告知用户去哪打开授权
// 添加图片到自己相册
// 把图片放在系统相册
// 判断是否已有相册
// 如果存在已囿同名相册 指定这个相册,创建相册请求修改类
// 3.把图片添加到相册中
// 指定相册名称,获取相册
// 获取相簿中所有自定义相册
遍历相册,判断是否存茬同名的相册