|
@@ -14,6 +14,13 @@ import Photos
|
|
|
|
|
|
class INPhotoVideosController: BFBaseViewController {
|
|
class INPhotoVideosController: BFBaseViewController {
|
|
var chosedAsset:[PHAsset]?
|
|
var chosedAsset:[PHAsset]?
|
|
|
|
+ // 按钮高
|
|
|
|
+ let choseBtnH: CGFloat = cDefaultMargin * 3
|
|
|
|
+ // 按钮宽
|
|
|
|
+ let choseBtnW: CGFloat = cDefaultMargin * 5
|
|
|
|
+ // 间隔
|
|
|
|
+ let margin: CGFloat = 12
|
|
|
|
+
|
|
lazy var albumController: BFPhotoAlbumController = {
|
|
lazy var albumController: BFPhotoAlbumController = {
|
|
let albumController = BFPhotoAlbumController()
|
|
let albumController = BFPhotoAlbumController()
|
|
albumController.mediaType = .video
|
|
albumController.mediaType = .video
|
|
@@ -49,8 +56,9 @@ class INPhotoVideosController: BFBaseViewController {
|
|
|
|
|
|
lazy var photoMaterialVc: BFPhotosMaterialController = {
|
|
lazy var photoMaterialVc: BFPhotosMaterialController = {
|
|
let vc = BFPhotosMaterialController()
|
|
let vc = BFPhotosMaterialController()
|
|
|
|
+ vc.maxChoseNum = 20
|
|
vc.view.backgroundColor = .black
|
|
vc.view.backgroundColor = .black
|
|
- vc.updateFrame(newFrame: CGRect(x: 0, y: cDevice_iPhoneNavBarAndStatusBarHei, width: cScreenWidth, height: cScreenHeigth - cDevice_iPhoneNavBarAndStatusBarHei - cDevice_iPhoneTabBarHei))
|
|
|
|
|
|
+ vc.updateFrame(newFrame: CGRect(x: 0, y: navHeadImageView?.bottomY ?? 0, width: cScreenWidth, height: cScreenHeigth - cDevice_iPhoneNavBarAndStatusBarHei - cDevice_iPhoneTabBarHei))
|
|
vc.selectedMaterialHandle = { [weak self] currentMaterialData, selectedPhotoData, _, _ in
|
|
vc.selectedMaterialHandle = { [weak self] currentMaterialData, selectedPhotoData, _, _ in
|
|
self?.chosedAsset = selectedPhotoData
|
|
self?.chosedAsset = selectedPhotoData
|
|
|
|
|
|
@@ -58,12 +66,61 @@ class INPhotoVideosController: BFBaseViewController {
|
|
return vc
|
|
return vc
|
|
}()
|
|
}()
|
|
|
|
|
|
|
|
+ lazy var choseLocalAllBtn: UIButton = {
|
|
|
|
+ let choseLocalAllBtn = UIButton(frame: CGRect(x: (view.frame.width - choseBtnW * 3) / 4, y: cDevice_iPhoneNavBarAndStatusBarHei + margin, width: choseBtnW, height: choseBtnH))
|
|
|
|
+ choseLocalAllBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#999999"), for: .normal)
|
|
|
|
+ choseLocalAllBtn.setTitleColor(BFConfig.shared.styleTitleColor, for: .selected)
|
|
|
|
+ choseLocalAllBtn.setTitle("全部", for: .normal)
|
|
|
|
+ choseLocalAllBtn.titleLabel?.font = UIFont.systemFont(ofSize: 17, weight: .medium)
|
|
|
|
+ choseLocalAllBtn.addCorner(corner: 6)
|
|
|
|
+ choseLocalAllBtn.tag = 10
|
|
|
|
+ choseLocalAllBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
|
|
|
|
+ return choseLocalAllBtn
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ lazy var choseLocalVideoBtn: UIButton = {
|
|
|
|
+ let choseLocalVideoBtn = UIButton(frame: CGRect(x: choseLocalAllBtn.frame.maxX + (view.frame.width - choseBtnW * 3) / 4, y: choseLocalAllBtn.frame.minY, width: choseBtnW, height: choseBtnH))
|
|
|
|
+ choseLocalVideoBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#999999"), for: .normal)
|
|
|
|
+ choseLocalVideoBtn.setTitleColor(BFConfig.shared.styleTitleColor, for: .selected)
|
|
|
|
+ choseLocalVideoBtn.setTitle("视频", for: .normal)
|
|
|
|
+ choseLocalVideoBtn.titleLabel?.font = UIFont.systemFont(ofSize: 17, weight: .medium)
|
|
|
|
+ choseLocalVideoBtn.addCorner(corner: 6)
|
|
|
|
+ choseLocalVideoBtn.tag = 11
|
|
|
|
+ choseLocalVideoBtn.isSelected = true
|
|
|
|
+ choseLocalVideoBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
|
|
|
|
+ return choseLocalVideoBtn
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ lazy var choseLocalImageBtn: UIButton = {
|
|
|
|
+ let choseLocalImageBtn = UIButton(frame: CGRect(x: choseLocalVideoBtn.frame.maxX + (view.frame.width - choseBtnW * 3) / 4, y: choseLocalAllBtn.frame.minY, width: choseBtnW, height: choseBtnH))
|
|
|
|
+ choseLocalImageBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#999999"), for: .normal)
|
|
|
|
+ choseLocalImageBtn.setTitleColor(BFConfig.shared.styleTitleColor, for: .selected)
|
|
|
|
+ choseLocalImageBtn.setTitle("照片", for: .normal)
|
|
|
|
+ choseLocalImageBtn.titleLabel?.font = UIFont.systemFont(ofSize: 17, weight: .medium)
|
|
|
|
+ choseLocalImageBtn.addCorner(corner: 6)
|
|
|
|
+ choseLocalImageBtn.tag = 12
|
|
|
|
+ choseLocalImageBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
|
|
|
|
+ return choseLocalImageBtn
|
|
|
|
+ }()
|
|
|
|
+
|
|
|
|
+ lazy var choseLineView: UIView = {
|
|
|
|
+ let choseLineView = UIView(frame: CGRect(x: 0, y: 0, width: 25, height: 3))
|
|
|
|
+ choseLineView.frame.origin.y = (navHeadImageView?.frame.maxY ?? 0) - 6
|
|
|
|
+ choseLineView.center.x = choseLocalVideoBtn.center.x
|
|
|
|
+ choseLineView.backgroundColor = UIColor.hexColor(hexadecimal: BFConfig.shared.styleColor.rawValue)
|
|
|
|
+ return choseLineView
|
|
|
|
+ }()
|
|
|
|
|
|
|
|
+ //MARK: - 生命周期
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
override func viewWillAppear(_ animated: Bool) {
|
|
super.viewWillAppear(animated)
|
|
super.viewWillAppear(animated)
|
|
showNavigation()
|
|
showNavigation()
|
|
photoMaterialVc.hiddenNavigation()
|
|
photoMaterialVc.hiddenNavigation()
|
|
|
|
|
|
|
|
+ // 清理cache文件
|
|
|
|
+ clearCacheFile(at: exportVideosDirectory)
|
|
|
|
+ clearCacheFile(at: exportAudiosDirectory)
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
override func viewDidLoad() {
|
|
override func viewDidLoad() {
|
|
@@ -71,7 +128,12 @@ class INPhotoVideosController: BFBaseViewController {
|
|
|
|
|
|
leftButton(image: nil, imageName: nil, tintColor: .white)
|
|
leftButton(image: nil, imageName: nil, tintColor: .white)
|
|
navHeadImageView?.backgroundColor = .black
|
|
navHeadImageView?.backgroundColor = .black
|
|
|
|
+ navHeadImageView?.frame.size.height = cDevice_iPhoneNavBarAndStatusBarHei + margin * 2 + choseBtnH
|
|
navHeadImageView?.addSubview(changeCollecBtn)
|
|
navHeadImageView?.addSubview(changeCollecBtn)
|
|
|
|
+ navHeadImageView?.addSubview(choseLocalAllBtn)
|
|
|
|
+ navHeadImageView?.addSubview(choseLocalVideoBtn)
|
|
|
|
+ navHeadImageView?.addSubview(choseLocalImageBtn)
|
|
|
|
+
|
|
addChild(photoMaterialVc)
|
|
addChild(photoMaterialVc)
|
|
view.addSubview(photoMaterialVc.view)
|
|
view.addSubview(photoMaterialVc.view)
|
|
|
|
|
|
@@ -90,7 +152,7 @@ class INPhotoVideosController: BFBaseViewController {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- /// 按钮点击事件
|
|
|
|
|
|
+ // MARK: - 按钮点击事件
|
|
/// - Parameter sender: <#sender description#>
|
|
/// - Parameter sender: <#sender description#>
|
|
/// - Returns: <#description#>
|
|
/// - Returns: <#description#>
|
|
@objc func btnClick(sender: UIButton?) {
|
|
@objc func btnClick(sender: UIButton?) {
|
|
@@ -102,6 +164,21 @@ class INPhotoVideosController: BFBaseViewController {
|
|
} else {
|
|
} else {
|
|
albumController.dismissCategoryView()
|
|
albumController.dismissCategoryView()
|
|
}
|
|
}
|
|
|
|
+ case 10, 11, 12: // 筛选全部图库
|
|
|
|
+ choseLocalAllBtn.isSelected = sender?.tag == 10
|
|
|
|
+ choseLocalVideoBtn.isSelected = sender?.tag == 11
|
|
|
|
+ choseLocalImageBtn.isSelected = sender?.tag == 12
|
|
|
|
+ if sender?.tag == 11 {
|
|
|
|
+ photoMaterialVc.msgType = .video
|
|
|
|
+ } else if sender?.tag == 12 {
|
|
|
|
+ photoMaterialVc.msgType = .image
|
|
|
|
+ } else {
|
|
|
|
+ photoMaterialVc.msgType = .all
|
|
|
|
+ }
|
|
|
|
+ UIView.animate(withDuration: 0.3, delay: 0, options: .allowUserInteraction) { [weak self] in
|
|
|
|
+ self?.choseLineView.center.x = sender?.center.x ?? 0
|
|
|
|
+ } completion: { _ in
|
|
|
|
+ }
|
|
default:
|
|
default:
|
|
break
|
|
break
|
|
}
|
|
}
|
|
@@ -120,16 +197,31 @@ class INPhotoVideosController: BFBaseViewController {
|
|
}
|
|
}
|
|
|
|
|
|
override func rightBtnClick(sender _: UIButton) {
|
|
override func rightBtnClick(sender _: UIButton) {
|
|
- if let asset = self.chosedAsset{
|
|
|
|
|
|
+ if let assets = self.chosedAsset{
|
|
let vc = INIntrocudeController()
|
|
let vc = INIntrocudeController()
|
|
- vc.assets = asset
|
|
|
|
|
|
+ vc.assets = assets
|
|
navigationController?.pushViewController(vc, animated: true)
|
|
navigationController?.pushViewController(vc, animated: true)
|
|
}else{
|
|
}else{
|
|
cShowHUB(superView: nil, msg: "需要选择一个视频")
|
|
cShowHUB(superView: nil, msg: "需要选择一个视频")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ func clearCacheFile(at folderPath:String) {
|
|
|
|
+ if let files = try? FileManager.default.contentsOfDirectory(atPath: folderPath){
|
|
|
|
+ for file in files {
|
|
|
|
+ do {
|
|
|
|
+ try FileManager.default.removeItem(at: URL(fileURLWithPath: folderPath).appendingPathComponent(file))
|
|
|
|
+ }catch let error{
|
|
|
|
+ BFLog(1, message: "\(error), \(file)")
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //MARK: -
|
|
override open var preferredStatusBarStyle: UIStatusBarStyle {
|
|
override open var preferredStatusBarStyle: UIStatusBarStyle {
|
|
- return .lightContent
|
|
|
|
|
|
+ return .lightContent
|
|
}
|
|
}
|
|
}
|
|
}
|