123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- //
- // PhotoVideoListController.swift
- // BFRecordScreenKit_Example
- //
- // Created by 胡志强 on 2021/11/23.
- // Copyright © 2021 CocoaPods. All rights reserved.
- //
- import BFCommonKit
- import BFMaterialKit
- import BFRecordScreenKit
- import BFUIKit
- import Foundation
- import Photos
- import UIKit
- class PhotoVideoListController: BFBaseViewController {
- var chosedAsset: PHAsset?
- lazy var albumController: BFPhotoAlbumController = {
- let albumController = BFPhotoAlbumController()
- albumController.mediaType = .video
- albumController.isTopShow = true
- albumController.categoryH = cDefaultMargin * 40
- addChildViewController(albumController)
- view.insertSubview(albumController.view, belowSubview: navHeadImageView!)
- albumController.updateViewFrame(frame: CGRect(x: 0, y: navHeadImageView?.frame.maxY ?? cDevice_iPhoneNavBarAndStatusBarHei, width: view.frame.width, height: view.frame.height - (navHeadImageView?.frame.maxY ?? cDevice_iPhoneNavBarAndStatusBarHei)))
- albumController.selectedHandle = { [weak self] seletedData in
- if seletedData != nil {
- self?.albumSelectedHandle(seletedData: seletedData)
- } else {
- self?.changeCollecBtn.isSelected = false
- }
- }
- return albumController
- }()
- lazy var changeCollecBtn: UIButton = {
- let changeCollecBtn = UIButton(frame: CGRect(x: cDefaultMargin * 5, y: cDevice_iPhoneStatusBarHei, width: cScreenWidth - cDefaultMargin * 10, height: cDefaultMargin * 4))
- changeCollecBtn.titleLabel?.lineBreakMode = .byTruncatingTail
- changeCollecBtn.tintColor = BFConfig.shared.styleTitleColor
- changeCollecBtn.setTitle("我的相册", for: .normal)
- changeCollecBtn.setImage(UIImage.moduleImage(named: "icon_selected_down", moduleName: "BFFramework", isAssets: false)?.withRenderingMode(.alwaysTemplate), for: .normal)
- changeCollecBtn.setImage(UIImage.moduleImage(named: "icon_selected_up", moduleName: "BFFramework", isAssets: false)?.withRenderingMode(.alwaysTemplate), for: .selected)
- changeCollecBtn.setTitleColor(BFConfig.shared.styleTitleColor, for: .normal)
- changeCollecBtn.titleLabel?.font = UIFont.systemFont(ofSize: 18, weight: .medium)
- changeCollecBtn.tag = 1
- changeCollecBtn.imagePosition(at: PQButtonImageEdgeInsetsStyle.right, space: cDefaultMargin / 2)
- changeCollecBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
- return changeCollecBtn
- }()
- lazy var photoMaterialVc: BFPhotosMaterialController = {
- let vc = BFPhotosMaterialController()
- vc.view.backgroundColor = .black
- vc.updateFrame(newFrame: CGRect(x: 0, y: cDevice_iPhoneNavBarAndStatusBarHei, width: cScreenWidth, height: cScreenHeigth - cDevice_iPhoneNavBarAndStatusBarHei - cDevice_iPhoneTabBarHei))
- vc.selectedMaterialHandle = { [weak self] currentMaterialData, selectedPhotoData, _, _ in
- if currentMaterialData?.isSelected ?? false {
- self?.chosedAsset = currentMaterialData
- if selectedPhotoData.count == 2 {
- cShowHUB(superView: nil, msg: "临时:最新选择的视频是有效的视频")
- }
- } else {
- self?.chosedAsset = selectedPhotoData.first
- }
- }
- return vc
- }()
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- showNavigation()
- photoMaterialVc.hiddenNavigation()
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- leftButton(image: nil, imageName: nil, tintColor: .white)
- navHeadImageView?.backgroundColor = .black
- navHeadImageView?.addSubview(changeCollecBtn)
- addChildViewController(photoMaterialVc)
- view.addSubview(photoMaterialVc.view)
- let bottomV = UIView(frame: CGRect(x: 0, y: cScreenHeigth - cDevice_iPhoneTabBarHei, width: cScreenWidth, height: cDevice_iPhoneTabBarHei))
- bottomV.backgroundColor = .black
- view.addSubview(bottomV)
- let nextBtn = UIButton(type: .custom)
- nextBtn.frame = CGRect(x: cScreenWidth - 80, y: 10, width: 70, height: 29)
- nextBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#28BE67")
- nextBtn.setTitle("下一步", for: .normal)
- nextBtn.layer.cornerRadius = 4
- nextBtn.addTarget(self, action: #selector(rightBtnClick(sender:)), for: .touchUpInside)
- bottomV.addSubview(nextBtn)
- }
- /// 按钮点击事件
- /// - Parameter sender: <#sender description#>
- /// - Returns: <#description#>
- @objc func btnClick(sender: UIButton?) {
- switch sender?.tag {
- case 1: // 选择图库
- sender?.isSelected = !(sender?.isSelected ?? false)
- if sender?.isSelected ?? false {
- albumController.showCategoryView()
- } else {
- albumController.dismissCategoryView()
- }
- default:
- break
- }
- }
- /// 图库选择的回调
- /// - Parameter seletedData: <#seletedData description#>
- /// - Returns: <#description#>
- func albumSelectedHandle(seletedData: PHAsset?) {
- changeCollecBtn.isSelected = false
- if seletedData != nil {
- changeCollecBtn.setTitle(seletedData?.title ?? "全部", for: .normal)
- changeCollecBtn.imagePosition(at: PQButtonImageEdgeInsetsStyle.right, space: cDefaultMargin / 2)
- photoMaterialVc.assetCollection = seletedData?.assetCollection
- }
- }
- override func rightBtnClick(sender _: UIButton) {
- if let asset = chosedAsset {
- let vc = IntroduceController()
- vc.asset = asset
- navigationController?.pushViewController(vc, animated: true)
- } else {
- cShowHUB(superView: nil, msg: "需要选择一个视频")
- }
- }
- override open var preferredStatusBarStyle: UIStatusBarStyle {
- return .lightContent
- }
- }
|