終結照片瀏覽器應用ios源碼

開發環境: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) 縮略圖加載成功,圖片查看中下載成功及動畫由縮略圖佔位動態變化到高清佔位狀態



 

 

詳細說明:http://ios.662p.com/thread-2527-1-1.html微信

相關文章
相關標籤/搜索