先上部分界面截圖一張洋只,gif效果圖請拉至文章末尾查看
前言
ZLPhotoBrowser 原是一款 oc
編寫的框架辆沦,但有一些遺留問題(例如圖片編輯功能不好用、新功能擴展不方便)识虚,以及感覺多余的功能(網絡圖片/視頻的預覽)讓這個框架變的不純粹肢扯,并帶來一些負擔。
所以不在大刀闊斧的對原代碼進行改動担锤,索性從 4.0.0
版本起全部由 Swift
進行重構蔚晨,對原代碼進行優(yōu)化,并刪除一些功能肛循,讓框架成為一個純粹的照片選擇框架铭腕。
功能介紹
你想要的應有盡有,預留給開發(fā)者自定義框架參數(shù)多達50個(沒有的話歡迎提 issue 多糠,功能建議好的話會采納并著手開發(fā))
- 支持橫豎屏
- 自選框架樣式
- 預覽快速選擇(支持拖拽選擇累舷,效果參照QQ)
- 相冊內部選擇(支持滑動選擇)
- 圖片/Gif/LivePhoto/Video 混合選擇
- 自定義最大預覽數(shù)/選擇數(shù)/視頻最大最小可選時長,控制可否選擇原圖
- 自定義每行顯示列數(shù)
- 圖片編輯(涂鴉/裁剪/馬賽克)(圖片編輯可編輯多張夹孔;涂鴉顏色可自定義被盈,裁剪工具也可根據(jù)需要自行選擇)
- 視頻編輯(自定義最大裁剪時長)(效果參照微信視頻編輯)
- 自定義相機(效果參照微信拍照,點擊拍照析蝴、長按拍攝害捕;上滑調整焦距绿淋;可設置最大錄制時間及視頻分辨率闷畸;可設置閃光燈模式及視頻導出格式;可根據(jù)自己需要控制是否使用自定義相機)
- 多語言國際化支持(中文簡/繁吞滞,英文佑菩,日文,開發(fā)者可選根據(jù)系統(tǒng)或自己指定裁赠,多語言文案可自定義)
- 已選擇照片index
- 已選/不可選 狀態(tài)下mask陰影遮罩
- 大圖界面下方顯示已選擇照片殿漠,可拖拽排序(可根據(jù)自己需要控制是否顯示)
- 大圖界面下拉返回
- 相機內部拍照cell實時顯示相機俘獲畫面
- 可自定義框架字體
- 框架各個部位顏色均可自定義(傳入dynamic color即可支持 light/dark mode)
- 框架內圖片資源可自定義
還有一些原
oc
框架支持的功能暫未遷移,后續(xù)會逐步遷移過來
框架支持
- iOS 10.0
- Swift 5.x
- Xcode 11.x
使用介紹
ZLPhotoConfiguration
該類為框架配置的單例類佩捞,你可以根據(jù)需求對各個參數(shù)進行修改绞幌,每個參數(shù)均有詳細的介紹
ZLPhotoThemeColorDeploy
該類為框架顏色配置類,你可以根據(jù)你們app的UI對各個參數(shù)進行修改
使用示例
- 快速選擇
let ac = ZLPhotoPreviewSheet()
ac.selectImageBlock = { [weak self] (images, assets, isOriginal) in
// your code
}
ac.showPreview(animate: true, sender: self)
- 直接進入相冊選擇
let ac = ZLPhotoPreviewSheet()
ac.selectImageBlock = { [weak self] (images, assets, isOriginal) in
// your code
}
ac.showPhotoLibrary(sender: self)
- 調用自定義相機
let camera = ZLCustomCamera()
camera.takeDoneBlock = { [weak self] (image, videoUrl) in
// your code
}
self.showDetailViewController(camera, sender: nil)
- 調用編輯圖片
let editVC = ZLEditImageViewController(image: image, tools: [.draw, .clip, .mosaic])
editVC.editFinishBlock = { [weak self] (image) in
// your code
}
self.showDetailViewController(editVC, sender: nil)
- 自定義圖片資源
// 與圖片名字保持一致即可
ZLPhotoConfiguration.default().customImageNames = ["zl_btn_selected"]
- 自定義文案
// 因需要兼容oc調用一忱,swift的struct不支持添加@objc莲蜘,所以暫時只能使用這種方式
ZLPhotoConfiguration.default().customLanguageKeyValue = [ZLLocalLanguageKey.previewCamera.rawValue: "相機"]
- 支持light/dark mode顏色定義示例
if #available(iOS 13.0, *) {
ZLPhotoConfiguration.default().themeColorDeploy.thumbnailBgColor = UIColor.init(dynamicProvider: { (trait) -> UIColor in
if trait.userInterfaceStyle == .dark {
return .black
} else {
return .white
}
})
}
需要注意的地方谭确,你需要在你app的 Info.plist
中添加如下鍵值對
//如果不添加該鍵值對,則不支持多語言票渠,相冊名稱默認為英文
Localized resources can be mixed YES
//或者右鍵plist文件Open As->Source Code 添加
CFBundleAllowMixedLocalizations
//相冊使用權限描述
Privacy - Photo Library Usage Description
//相機使用權限描述
Privacy - Camera Usage Description
//麥克風使用權限描述
Privacy - Microphone Usage Description
安裝方法
框架支持 cocoapods
/ carthage
/ swift package manage
三種方式進行安裝
- cocoapods
- 在
Podfile
中添加pod 'ZLPhotoBrowser'
- 執(zhí)行
pod install
如果找不到最新版本逐哈,請先執(zhí)行
pod repo update
- carthage
- 在
Cartfile
中添加github "longitachi/ZLPhotoBrowser" ~> 4.0.0
- 執(zhí)行
carthage update ZLPhotoBrowser
- swift package manager
- 選擇 File > Swift Packages > Add Package Dependency,輸入
https://github.com/longitachi/ZLPhotoBrowser.git
- 輸入對應版本號(注意SPM最低支持版本為
4.0.1
) - 待Xcode下載完成點擊確定即可
部分功能Gif效果圖
- 快速選擇及相冊內部選擇
- 編輯圖片问顷,編輯視頻
- 多語言配置