开发环境:Swift 1.2 .Xcode 6.3
(一)整体说明1.本框架有OC版本,本次主要是汲取了OC版本全部bug与不足,同时听取在大量使用者的反馈与心声、修复与极大的改善了以前的OC版本并在此基础之上精心推出的Swift完美版,https://github.com/nsdictionary/CorePhotoBrowserVC。 2.纯swift支持,本地与网络支持,横竖屏支持,iPhone全部屏幕支持,iPad平板也支持并力求零Bug。 3.依赖框架说明:CFSnapKit(布局库)、Haneke(图片缓存库)、NVActivityIndicatorView(加载视图) 4.本次的文档会比较有趣,是以图片各功能来说述的,请认真查看图片说明文字,使用也内嵌在这些图片说明中。 5.本框架基本是在我去若尔盖大草原上的长途汽车途中完成的,因此里面有大量若尔盖风景! 6.不支持pod。
html 源码下载:ios http://code.662p.com/view/11493.htmlgit 快速集成 1.添加库拖拽PhotoBrowser文件夹到你的项目,拖拽Frameworks中的依赖库到您的项目中。
2.展现相册:分本地相册和网络相册 2.1展现本地相册/** 本地相册 */ func showLocal(index: Int){ let pbVC = PhotoBrowser()/** 设置相册展现样式 */pbVC.showType = showType/** 设置相册类型 */pbVC.photoType = PhotoBrowser.PhotoType.Local//强制关闭显示一切信息pbVC.hideMsgForZoomAndDismissWithSingleTap = truevar models: [PhotoBrowser.PhotoModel] = []let title = langType == LangType.Chinese ? titleLocalCH : titleENlet desc = langType == LangType.Chinese ? descLocalCH : descLocalEN//模型数据数组for (var i=0; i<9; i++){ let model = PhotoBrowser.PhotoModel(localImg:UIImage(named: "\(i+1).jpg")! , titleStr: title, descStr:desc, sourceView: displayView.subviews as! UIView) models.append(model)}/** 设置数据 */pbVC.photoModels = modelspbVC.show(inVC: self,index: index)}
2.2展现网络相册/** 网络相册相册 */ func showHost(index: Int){ let pbVC = PhotoBrowser()/** 设置相册展现样式 */pbVC.showType = showType/** 设置相册类型 */pbVC.photoType = PhotoBrowser.PhotoType.Host//强制关闭显示一切信息pbVC.hideMsgForZoomAndDismissWithSingleTap = truevar models: [PhotoBrowser.PhotoModel] = []let titles = langType == LangType.Chinese ? titleHostCH : titleHostENlet descs = langType == LangType.Chinese ? descHostCH : descHostEN//模型数据数组for (var i=0; i<9; i++){ let model = PhotoBrowser.PhotoModel(hostHDImgURL: hostHDImageUrls, hostThumbnailImg: (displayView.subviews as! UIImageView).image, titleStr: titles, descStr: descs, sourceView: displayView.subviews as! UIView) models.append(model)}/** 设置数据 */pbVC.photoModels = modelspbVC.show(inVC: self,index: index)}
本地相册和网络相册不一样点总结以下: 1.照片浏览器属性showType:本地相册是枚举值Local,网络相册是枚举值Host 2.照片浏览器的相册模型是PhotoBrowser.PhotoModel类型,他有两个初始化方法: 本地相册请调用初始化方法PhotoBrowser.PhotoModel(localImg:..., 网络相册请调用初始化方法PhotoBrowser.PhotoModel(hostHDImgURL:...这个方法。
3.功能详解(图文使用,请认真查看): (1) 基本展现能够直接展现照片浏览器,且可指定page显示.以前我看过的几乎全部的照片浏览器基本都是直接添加在window上的,这样作最简单但有致命缺陷就是设置旋转以后,window上的照片浏览器并不知道。因此我在这里更改了传统作法。照片浏览器初始化传入的vc,请传当前业务控制器便可,不要乱传其余的好比navigationVC,tabarVC哦。。github

(2) 无NavBar,无TabBar 照片浏览器是隐藏了状态栏的,在ios7下状态栏是基于Cotroller管理的,但这个不方便我操做,因此你须要在info.plist文件中加一个属性:View controller-based status bar appearance 并将值设置为NO。
 web (3) 有NavBar,无TabBar 
(4) 无NavBar,有TabBar 有TabBar的状况下尤其要注意:由于照片浏览器是添加在vc之上的(能自动旋转,并在设计上是合理的),因此您的vc最好是全屏布局的,就是说最好不要使用vc.edgesForExtendedLayout,不然你可能会发现您的照片浏览器不是全屏的大小。
 swift (5) 有NavBar,有TabBar 
(6) Push模式请直接设置pbVC.showType = PhotoBrowser.ShowType.Push Push模式界面已经自定义,统一了界面

(7) Modal模式请直接设置pbVC.showType = PhotoBrowser.ShowType.Modal 界面已经自定义 
(8) 放大模型:仿网易新闻,经典OC版本模式请直接设置pbVC.showType = PhotoBrowser.ShowType.ZoomAndDismissWithCancelBtnClick 仿网易效果为:单击不会退出,但会切换隐藏或显示详细信息。 单击:显示详细信息再单击:隐藏详细信息并进入全屏深度查看模式,此模式下无pageControl 
(9) 放大模式:微信、新浪微博缩放模式你们在OC版本反馈想要的功能,,经典OC版本无此功能 请直接设置pbVC.showType = PhotoBrowser.ShowType.ZoomAndDismissWithSingleTap 仿微信效果为:单击不会切换详细信息,而是直接就退出。 注:此模式下可定制详细信息显示模式,下面会写到。 
(10) 横屏功能支持:你们在OC版本反馈想要的功能横屏模式可兼容iPad,并可竖进竖出、竖进横出、橫进橫出、橫进竖出。进:指的是点击缩略图进入照片浏览器;出:指的是退出照片浏览器。 
(11) 图片保存图片作了重复保存逻辑,但下一次再次进入照片浏览器仍是能够再次保存OC版本作了严密的仿重复保存处理,不过代价略高。注:我看了微信、微博也是同样的,下次进入仍是能够重复保存,因此不纠结 
(12) 信息滚动查看:你们在OC版本反馈想要的功能请注意查看第2页详细文字过少于是不能滚动,而第1页文字过多,是能够上下滚动查看的注:文字过少不可滚动。文字过多可直接滚动,可选中文字。 
(13) 单击模式:详细信息模式有标题以及具体的详细说明文字信息注:默认为显示详细信息,单击退出模式下此功能可定制,请参见下一个示例 
(14) 单击模式:去除详细信息模式,仿微信这个是你们在OC版本反馈想要的功能 无标题以及详细文字,但有pageControl 请设置如下代码,注意此功能仅仅在ZoomAndDismissWithSingleTap下有效数组 //强制关闭显示一切信息 pbVC.hideMsgForZoomAndDismissWithSingleTap = true浏览器 
(15) 缩略图未加载成功,大图也没有加载成功默认使用动态生成的黑色图片缩放 swift中的图片缓存框架Haneke目前不支持下载进度,因此没有图片下载进度,其余有进度的框架又是只支持ios8以上。不过我在Haneke的issue中请教了若是获取进度,不过做者尚未回复我。若是有了进度功能,我会尽快添加进度指示。
 缓存 (16) 缩略图加载成功,大图没有加载成功缩略图动态到照片浏览器正中间120*120缩略图占位状态 
(17) 缩略图加载成功,大图也加载成功缩略图直接缩放到高清大图计算后的位置占位状态 
(18) 缩略图加载成功,图片查看中下载成功及动画由缩略图占位动态变化到高清占位状态 
|