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