一、需求分析
点击照片从当前照片位置动画弹出新的视图控制器显示选中的照片,新的视图控制器为全屏显示,背景为黑色,再次点击照片动画缩小至当前选中的照片位置,双击放大照片,如果已经放大则缩小,在新的视图控制器中滑动手指,可以在照片之间切换,当前显示的照片支持手指捏合手势,放大或缩小照片,照片切换时,在照片的下方显示标签提示当前显示的照片数量及照片总数。
性能优化:点击照片从当前照片位置动画弹出新的视图控制器显示选中的照片(非modal、非push)
新的视图控制器为全屏显示,背景为黑色(修改UIApplication的状态栏),再次点击照片动画缩小至当前选中的照片位置(照片视图需要与父视图中的UIImageView建立关联),在新的视图控制器中滑动手指,可以在照片之间切换(UIScrollView的分页支持),当前显示的照片支持手指捏合手势,放大或缩小照片(UIScrollView的代理方法支持图片缩放),照片切换时,在照片的下方显示标签提示当前显示的照片数量及照片总数(开启新的视图控制器前,需要传入照片数组)
二、调整瀑布流
因网络抓取JSON数据的问题,改为从本地plist文件加载照片数据文件,修改MGJData,增加大图URL,修改WaterFlowView中的generateCacheData方法,在重新加载数据前删除所有子视图,创建PhotoBowser分组,保存照片浏览器代码。
三、建立照片浏览器所需文件
PhotoBowserViewController:负责照片浏览控制
PhotoView:显示单张照片,继承自UIScrollView
PhotoToolbarView:照片工图栏视图,显示保存按钮和照片索引
PhotoModel:照片数据模型类,保存照片浏览器的数据
四、建立数据模型
+ (id)photoModelWithUrl:(NSURL *)url index:(NSInteger)index;
// 图像Url
@property (strong, nonatomic) NSURL *url;
// 图像索引