iOS 仿微信相簿選擇照片imagePicker(Swift) 序號 預覽縮圖

ZY_FlyWay發表於2018-08-24

序:微信最新版,選擇照片控制元件細節有所改變,一般有輪子我是不會從新造的 。產品要求一模一樣,無奈重新寫。調查了一下,GitHub大部分仿微信imagePicker還是基於TZImagePicker,swift出了那麼長時間了。決定寫一個swift版,因在專案中,時間有限,所以在GitHub找了一個非常好的庫進行改寫。

##演示

這裡寫圖片描述

這裡寫圖片描述

##功能支援

高仿微信細節

  • 相簿序號選擇: 微信樣式多選照片
  • 預覽序號選擇: 預覽時可以序號選擇
  • 預覽縮圖和大圖聯動: 聯動樣式仿微信
  • 網路圖片瀏覽: 有時需要處理伺服器返回網路圖片
  • 快速佈局UI: 只需整合 ZYImagePickerLayoutView 可自動將照片佈局

結構

不依賴任何第三方庫。

ZYImagePickerAndBrower 是一個模仿微信相簿多選照片的一個控制元件。注意了微信相簿的一些細節,比如序號,最大選擇之後照片變灰,瀏覽縮圖等等。

ZYImagePickerLayoutView 是相簿選擇之後的佈局view庫,單獨拿出來做一個UI庫,可選整合。

支援

  • 支援iOS8+
  • Swift4.1
  • Cocospods

##安裝

手動Demo

裡面有這兩個庫,拖到專案即可,具體看demo,資源圖片路徑有問題,需要手動加入asset。

Cocospods Demo:

pod 'ZYImagePickerAndBrower', '~> 1.1.0'
pod 'ZYImagePickerLayoutView', '~> 0.1.7' 可選

使用

設定主題顏色

ZYPhotoAlbumSkinColor = UIColor.orange

選照片

 let photoAlbumVC = ZYPhotoNavigationViewController(photoAlbumDelegate: self, photoAlbumType: .selectPhoto)    //初始化需要設定代理物件
        photoAlbumVC.maxSelectCount = 9   //最大可選擇張數
        self.navigationController?.present(photoAlbumVC, animated: true, completion: nil)

ZYPhotoAlbumProtocol回撥

 func photoAlbum(selectPhotos: [ZYPhotoModel]) {
        //選擇的照片之後去layoutView顯示
        let imageArray = selectPhotos.map { (model) -> UIImage in
            return model.thumbnailImage!
        }
        imagePickerView.dataSource = imageArray
        imagePickerView.numberOfLine = 4
        imagePickerView.reloadView()
        imagePickerView.addCallBack = { () in
            self.goPickerController()
        }
 }

預覽圖片: ZYPhotoModel支援url,image預覽

 let photoPreviewVC = ZYPhotoPreviewDeleteViewController()
        photoPreviewVC.previewPhotoArray = self.selectIamgeArr        //傳入預覽源,為WQPhotoModel陣列,支援縮圖,原圖和網路圖
        photoPreviewVC.currentIndex = index                    //當前展示第幾張
        photoPreviewVC.isAllowDelete = false
        self.navigationController?.pushViewController(photoPreviewVC, animated: true)

後記

參考基礎庫: https://github.com/wCodeQ/WQPhotoAlbum

相關文章