PQStuckPointMaterialController.swift 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. //
  2. // PQStuckPointMaterialController.swift
  3. // PQSpeed
  4. //
  5. // Created by SanW on 2021/4/26.
  6. // Copyright © 2021 BytesFlow. All rights reserved.
  7. //
  8. import UIKit
  9. public class PQStuckPointMaterialController: PQBaseViewController {
  10. // 按钮高
  11. let choseBtnH: CGFloat = cDefaultMargin * 3
  12. // 按钮宽
  13. let choseBtnW: CGFloat = cDefaultMargin * 5
  14. // 操作视图高度
  15. let topImageH: CGFloat = 76
  16. // 底部操作视图高度
  17. let bottomH: CGFloat = cDefaultMargin * 5
  18. // 间隔
  19. let margin: CGFloat = 12
  20. // 选择的总数
  21. var selectedDataCount: Int = 0
  22. // 选择的图片总数
  23. var selectedImageDataCount: Int = 0
  24. // 再创作音乐数据
  25. public var reCreateMusicData: PQVoiceModel?
  26. lazy var changeCollecBtn: UIButton = {
  27. let changeCollecBtn = UIButton(frame: CGRect(x: cDefaultMargin * 5, y: cDevice_iPhoneStatusBarHei, width: cScreenWidth - cDefaultMargin * 10, height: cDefaultMargin * 4))
  28. changeCollecBtn.titleLabel?.lineBreakMode = .byTruncatingTail
  29. changeCollecBtn.setTitle("全部", for: .normal)
  30. changeCollecBtn.setImage(UIImage.init().BF_Image(named: "icon_selected_down"), for: .normal)
  31. changeCollecBtn.setImage(UIImage.init().BF_Image(named: "icon_selected_up"), for: .selected)
  32. changeCollecBtn.setTitleColor(UIColor.white, for: .selected)
  33. changeCollecBtn.titleLabel?.font = UIFont.systemFont(ofSize: 18, weight: .medium)
  34. changeCollecBtn.tag = 1
  35. changeCollecBtn.imagePosition(at: .right, space: cDefaultMargin / 2)
  36. changeCollecBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
  37. return changeCollecBtn
  38. }()
  39. lazy var albumController: PQPhotoAlbumController = {
  40. let albumController = PQPhotoAlbumController()
  41. albumController.isTopShow = true
  42. albumController.categoryH = cDefaultMargin * 40
  43. addChild(albumController)
  44. view.insertSubview(albumController.view, belowSubview: navHeadImageView!)
  45. 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)))
  46. albumController.selectedHandle = { [weak self] seletedData in
  47. self?.albumSelectedHandle(seletedData: seletedData)
  48. }
  49. return albumController
  50. }()
  51. lazy var choseLocalAllBtn: UIButton = {
  52. let choseLocalAllBtn = UIButton(frame: CGRect(x: (view.frame.width - choseBtnW * 3) / 4, y: cDevice_iPhoneNavBarAndStatusBarHei + margin, width: choseBtnW, height: choseBtnH))
  53. choseLocalAllBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#999999"), for: .normal)
  54. choseLocalAllBtn.setTitleColor(UIColor.white, for: .selected)
  55. choseLocalAllBtn.setTitle("全部", for: .normal)
  56. choseLocalAllBtn.titleLabel?.font = UIFont.systemFont(ofSize: 17)
  57. choseLocalAllBtn.addCorner(corner: 6)
  58. choseLocalAllBtn.tag = 10
  59. choseLocalAllBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
  60. return choseLocalAllBtn
  61. }()
  62. lazy var choseLocalVideoBtn: UIButton = {
  63. let choseLocalVideoBtn = UIButton(frame: CGRect(x: choseLocalAllBtn.frame.maxX + (view.frame.width - choseBtnW * 3) / 4, y: choseLocalAllBtn.frame.minY, width: choseBtnW, height: choseBtnH))
  64. choseLocalVideoBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#999999"), for: .normal)
  65. choseLocalVideoBtn.setTitleColor(UIColor.white, for: .selected)
  66. choseLocalVideoBtn.setTitle("视频", for: .normal)
  67. choseLocalVideoBtn.titleLabel?.font = UIFont.systemFont(ofSize: 17)
  68. choseLocalVideoBtn.addCorner(corner: 6)
  69. choseLocalVideoBtn.tag = 11
  70. choseLocalVideoBtn.isSelected = true
  71. choseLocalVideoBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
  72. return choseLocalVideoBtn
  73. }()
  74. lazy var choseLocalImageBtn: UIButton = {
  75. let choseLocalImageBtn = UIButton(frame: CGRect(x: choseLocalVideoBtn.frame.maxX + (view.frame.width - choseBtnW * 3) / 4, y: choseLocalAllBtn.frame.minY, width: choseBtnW, height: choseBtnH))
  76. choseLocalImageBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#999999"), for: .normal)
  77. choseLocalImageBtn.setTitleColor(UIColor.white, for: .selected)
  78. choseLocalImageBtn.setTitle("照片", for: .normal)
  79. choseLocalImageBtn.titleLabel?.font = UIFont.systemFont(ofSize: 17)
  80. choseLocalImageBtn.addCorner(corner: 6)
  81. choseLocalImageBtn.tag = 12
  82. choseLocalImageBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
  83. return choseLocalImageBtn
  84. }()
  85. lazy var choseLineView: UIView = {
  86. let choseLineView = UIView(frame: CGRect(x: 0, y: 0, width: 25, height: 2))
  87. choseLineView.frame.origin.y = (navHeadImageView?.frame.maxY ?? 0) - 5
  88. choseLineView.center.x = choseLocalVideoBtn.center.x
  89. choseLineView.backgroundColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
  90. return choseLineView
  91. }()
  92. // 顶部提示视图
  93. // lazy var materialHeadView: PQStuckPointMaterialHeadView = {
  94. // let materialHeadView: PQStuckPointMaterialHeadView = PQStuckPointMaterialHeadView(frame: CGRect(x: 0, y: navHeadImageView?.frame.maxY ?? cDevice_iPhoneNavBarAndStatusBarHei, width: view.frame.width, height: topImageH))
  95. // return materialHeadView
  96. // }()
  97. // 底部操作视图
  98. lazy var bottomRemindView: UIView = {
  99. let bottomRemindView = UIView(frame: CGRect(x: 0, y: view.frame.height - (bottomH + cSafeAreaHeight), width: view.frame.width, height: bottomH + cSafeAreaHeight))
  100. bottomRemindView.backgroundColor = UIColor.hexColor(hexadecimal: "#191919")
  101. return bottomRemindView
  102. }()
  103. // 确定按钮
  104. lazy var confirmBtn: UIButton = {
  105. let confirmBtn = UIButton(frame: CGRect(x: bottomRemindView.frame.width - cDefaultMargin * 9 - margin, y: margin / 2, width: cDefaultMargin * 9, height: bottomH - margin))
  106. confirmBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#333333")
  107. // confirmBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#EE0051")
  108. confirmBtn.setTitle("确定", for: .normal)
  109. confirmBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#999999"), for: .normal)
  110. confirmBtn.setTitleColor(UIColor.hexColor(hexadecimal: "#999999"), for: .normal)
  111. confirmBtn.setTitleColor(UIColor.white, for: .selected)
  112. confirmBtn.titleLabel?.font = UIFont.systemFont(ofSize: 13, weight: .medium)
  113. confirmBtn.addCorner(corner: 3)
  114. confirmBtn.tag = 13
  115. confirmBtn.addTarget(self, action: #selector(btnClick(sender:)), for: .touchUpInside)
  116. return confirmBtn
  117. }()
  118. // 底部提示视图
  119. lazy var bottomRemindLab: UILabel = {
  120. let bottomRemindLab = UILabel(frame: CGRect(x: margin, y: 0, width: bottomRemindView.frame.width - margin * 3 - confirmBtn.frame.width, height: bottomH))
  121. bottomRemindLab.attributedText = NSAttributedString(string: "至少选择 1 个视频或 2 张照片")
  122. bottomRemindLab.textAlignment = .left
  123. bottomRemindLab.textColor = UIColor.white
  124. bottomRemindLab.font = UIFont.systemFont(ofSize: 14, weight: .medium)
  125. return bottomRemindLab
  126. }()
  127. /// 已选素材列表
  128. lazy var materialListView: PQSelectedMaterialListView = {
  129. let materialListView = PQSelectedMaterialListView(frame: CGRect(x: 0, y: cScreenHeigth, width: cScreenWidth, height: 88))
  130. materialListView.deletedMaterialHandle = { [weak self] materialData, isDissmiss in
  131. /// 处理已经选择的数据
  132. self?.dealWithSelectedMaterials(isDissmiss: isDissmiss, isChose: false, materialData: materialData)
  133. }
  134. materialListView.detailMaterialHandle = { [weak self] _, materialData in
  135. let detailVc: PQStuckPointMaterialDetailController = PQStuckPointMaterialDetailController()
  136. detailVc.materialDetailClickHandle = { [weak self] isMaterialSelected, materialData in
  137. if isMaterialSelected != materialData?.isSelected {
  138. self?.photoMaterialVc.updateMaterials(isSelected:!(isMaterialSelected ?? false), materialData: materialData)
  139. }
  140. }
  141. if !(materialData?.isSelected ?? false) {
  142. materialData?.selectedIndex = (self?.selectedDataCount ?? 0) + 1
  143. }
  144. detailVc.materialData = materialData
  145. self?.navigationController?.pushViewController(detailVc, animated: true)
  146. }
  147. return materialListView
  148. }()
  149. /// 图片加载视图
  150. lazy var photoMaterialVc: PQPhotoMaterialController = {
  151. let photoMaterialVc = PQPhotoMaterialController()
  152. photoMaterialVc.isShowMediaTag = false
  153. photoMaterialVc.imageDuration = 1
  154. addChild(photoMaterialVc)
  155. view.insertSubview(photoMaterialVc.view, belowSubview: bottomRemindView)
  156. // photoMaterialVc.updateFrame(newFrame: CGRect(x: 0, y: materialHeadView.frame.maxY + margin / 2, width: view.frame.width, height: view.frame.height - (materialHeadView.frame.maxY + margin + bottomRemindView.frame.height)))
  157. photoMaterialVc.updateFrame(newFrame: CGRect(x: 0, y: (navHeadImageView?.frame.maxY ?? cDevice_iPhoneNavBarAndStatusBarHei) + margin / 2, width: view.frame.width, height: view.frame.height - ((navHeadImageView?.frame.maxY ?? cDevice_iPhoneNavBarAndStatusBarHei) + margin + bottomRemindView.frame.height)))
  158. photoMaterialVc.selectedMaterialHandle = { [weak self] currentMaterialData, selectedPhotoData, selectedTotalDuration, imageCount in
  159. self?.dealWithSelectedMaterial(materialData: currentMaterialData, selectedDatas: selectedPhotoData, totalDuration: selectedTotalDuration, imageCount: imageCount)
  160. /// 处理已经选择的数据
  161. self?.dealWithSelectedMaterials(isDissmiss: selectedPhotoData.count <= 0, isChose: true, materialData: currentMaterialData)
  162. }
  163. photoMaterialVc.detailMaterialHandle = { [weak self] _, currentMaterialData in
  164. let detailVc: PQStuckPointMaterialDetailController = PQStuckPointMaterialDetailController()
  165. detailVc.materialDetailClickHandle = { [weak self] isMaterialSelected, materialData in
  166. if isMaterialSelected != materialData?.isSelected {
  167. self?.photoMaterialVc.updateMaterials(isSelected:!(isMaterialSelected ?? false), materialData: materialData)
  168. }
  169. }
  170. if !(currentMaterialData?.isSelected ?? false) {
  171. currentMaterialData?.selectedIndex = (self?.selectedDataCount ?? 0) + 1
  172. }
  173. detailVc.materialData = currentMaterialData
  174. self?.navigationController?.pushViewController(detailVc, animated: true)
  175. }
  176. photoMaterialVc.emptyRefreshHandle = { [weak self] msgType in
  177. self?.btnClick(sender: msgType == .video ? self?.choseLocalImageBtn : (msgType == .image ? self?.choseLocalVideoBtn : self?.choseLocalAllBtn))
  178. }
  179. photoMaterialVc.scrollViewDidScroll = { [weak self] _ in
  180. // 更新frame
  181. // self?.updateMaterialHeadFrame(contentOffset: contentOffset)
  182. }
  183. return photoMaterialVc
  184. }()
  185. public override func viewDidLoad() {
  186. super.viewDidLoad()
  187. view.backgroundColor = UIColor.hexColor(hexadecimal: "#191919")
  188. navHeadImageView?.backgroundColor = UIColor.hexColor(hexadecimal: "#191919")
  189. lineView?.backgroundColor = UIColor.hexColor(hexadecimal: "#191919")
  190. leftButton(image: "upload_delete")
  191. navHeadImageView?.addSubview(changeCollecBtn)
  192. navHeadImageView?.frame.size.height = cDevice_iPhoneNavBarAndStatusBarHei + margin * 2 + choseBtnH
  193. navHeadImageView?.addSubview(choseLocalAllBtn)
  194. navHeadImageView?.addSubview(choseLocalVideoBtn)
  195. navHeadImageView?.addSubview(choseLocalImageBtn)
  196. navHeadImageView?.addSubview(choseLineView)
  197. // view.insertSubview(materialHeadView, belowSubview: navHeadImageView!)
  198. view.addSubview(bottomRemindView)
  199. bottomRemindView.addSubview(confirmBtn)
  200. bottomRemindView.addSubview(bottomRemindLab)
  201. photoMaterialVc.msgType = .video
  202. view.bringSubviewToFront(navHeadImageView!)
  203. view.insertSubview(materialListView, belowSubview: bottomRemindView)
  204. // 卡点音乐素材选择曝光上报
  205. PQEventTrackViewModel.baseReportUpload(businessType: .bt_windowView, objectType: .ot_view_selectSyncedUpMaterial, pageSource: .sp_stuck_selectMaterial, extParams: nil, remindmsg: "卡点视频数据上报-(曝光上报:卡点视频素材选择页)")
  206. }
  207. /// 按钮点击事件
  208. /// - Parameter sender: <#sender description#>
  209. /// - Returns: <#description#>
  210. @objc func btnClick(sender: UIButton?) {
  211. switch sender?.tag {
  212. case 1: // 选择图库
  213. sender?.isSelected = !(sender?.isSelected ?? false)
  214. if sender?.isSelected ?? false {
  215. albumController.showCategoryView()
  216. } else {
  217. albumController.dismissCategoryView()
  218. }
  219. case 10, 11, 12: // 筛选全部图库
  220. choseLocalAllBtn.isSelected = sender?.tag == 10
  221. choseLocalVideoBtn.isSelected = sender?.tag == 11
  222. choseLocalImageBtn.isSelected = sender?.tag == 12
  223. if sender?.tag == 11 {
  224. photoMaterialVc.msgType = .video
  225. } else if sender?.tag == 12 {
  226. photoMaterialVc.msgType = .image
  227. } else {
  228. photoMaterialVc.msgType = .all
  229. }
  230. UIView.animate(withDuration: 0.3, delay: 0, options: .allowUserInteraction) { [weak self] in
  231. self?.choseLineView.center.x = sender?.center.x ?? 0
  232. } completion: { _ in
  233. }
  234. case 13:
  235. if confirmBtn.isSelected {
  236. reCreateMusicData?.endTime = (reCreateMusicData?.startTime ?? 0) + (reCreateMusicData?.stuckPointCuttingTime(videoCount: selectedDataCount - selectedImageDataCount, imageCount: selectedImageDataCount, totalDuration: photoMaterialVc.selectedTotalDuration) ?? 0)
  237. let stuckPointMusicVc = PQStuckPointMusicController()
  238. stuckPointMusicVc.selectedMusicData = reCreateMusicData
  239. stuckPointMusicVc.selectedDataCount = selectedDataCount
  240. stuckPointMusicVc.selectedImageDataCount = selectedImageDataCount
  241. stuckPointMusicVc.selectedTotalDuration = photoMaterialVc.selectedTotalDuration
  242. stuckPointMusicVc.selectedPhotoData = photoMaterialVc.selectedPhotoData
  243. navigationController?.pushViewController(stuckPointMusicVc, animated: true)
  244. // 卡点视频素材确认按钮
  245. PQEventTrackViewModel.baseReportUpload(businessType: .bt_buttonClick, objectType: .ot_click_confirmMaterial, pageSource: .sp_stuck_selectMaterial, extParams: ["materialNumber": selectedDataCount], remindmsg: "卡点视频数据上报-(点击上报:卡点视频素材确认按钮)")
  246. }
  247. default:
  248. break
  249. }
  250. }
  251. override func backBtnClick() {
  252. super.backBtnClick()
  253. // 卡点视频返回按钮点击上报
  254. PQEventTrackViewModel.baseReportUpload(businessType: .bt_buttonClick, objectType: .ot_click_back, pageSource: .sp_stuck_selectMaterial, extParams: nil, remindmsg: "卡点视频数据上报-(点击上报:返回按钮)")
  255. }
  256. /// 图库选择的回调
  257. /// - Parameter seletedData: <#seletedData description#>
  258. /// - Returns: <#description#>
  259. func albumSelectedHandle(seletedData: PQUploadModel?) {
  260. changeCollecBtn.setTitle(seletedData?.title ?? "全部", for: .normal)
  261. changeCollecBtn.isSelected = false
  262. changeCollecBtn.imagePosition(at: .right, space: cDefaultMargin / 2)
  263. photoMaterialVc.assetCollection = seletedData?.assetCollection
  264. photoMaterialVc.msgType = photoMaterialVc.msgType
  265. // photoMaterialVc.msgType = .video
  266. // choseLocalAllBtn.isSelected = false
  267. // choseLocalVideoBtn.isSelected = true
  268. // choseLocalImageBtn.isSelected = false
  269. }
  270. /// 点击选择的回调
  271. /// - Parameter materialData: <#materialData description#>
  272. /// - Returns: <#description#>
  273. func dealWithSelectedMaterial(materialData _: PQEditVisionTrackMaterialsModel?, selectedDatas: [PQEditVisionTrackMaterialsModel]?, totalDuration: Float64, imageCount: Int) {
  274. selectedDataCount = selectedDatas?.count ?? 0
  275. selectedImageDataCount = imageCount
  276. confirmBtn.isSelected = (selectedDataCount > 0 && (imageCount >= 2 || selectedDataCount > imageCount))
  277. if confirmBtn.isSelected {
  278. confirmBtn.backgroundColor = UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)
  279. // if !materialHeadView.isHidden {
  280. // UIView.animate(withDuration: 0.5, delay: 0, options: .allowUserInteraction) { [weak self] in
  281. // // 调整位置
  282. // self?.adjustPhotoMaterialFrame()
  283. // } completion: { [weak self] _ in
  284. // self?.materialHeadView.isHidden = true
  285. // }
  286. // }
  287. } else {
  288. confirmBtn.backgroundColor = UIColor.hexColor(hexadecimal: "#333333")
  289. // if materialHeadView.isHidden {
  290. // UIView.animate(withDuration: 0.5, delay: 0, options: .allowUserInteraction) { [weak self] in
  291. // // 调整位置
  292. // self?.adjustPhotoMaterialFrame(isHidden: false)
  293. // } completion: { _ in
  294. // }
  295. // }
  296. }
  297. if selectedDataCount <= 0 {
  298. bottomRemindLab.attributedText = NSAttributedString(string: "至少选择 1 个视频或 2 张照片")
  299. } else if selectedImageDataCount == 1, selectedDataCount == selectedImageDataCount {
  300. let att = NSMutableAttributedString(string: "至少选择 1 个视频或 2 张照片")
  301. // att.setAttributes([.foregroundColor: UIColor.hexColor(hexadecimal: "#EE0051")], range: NSRange(location: 5, length: 1))
  302. bottomRemindLab.attributedText = att
  303. } else {
  304. let att = NSMutableAttributedString(string: "素材总时长 \(totalDuration.formatDurationToHMS())")
  305. att.setAttributes([.foregroundColor: UIColor.hexColor(hexadecimal: PQBFConfig.shared.styleColor.rawValue)], range: NSRange(location: 6, length: "\(totalDuration.formatDurationToHMS())".count))
  306. bottomRemindLab.attributedText = att
  307. }
  308. confirmBtn.setTitle(selectedDataCount > 0 ? "确定(\(selectedDataCount))" : "确定", for: .normal)
  309. }
  310. /// 调整位置
  311. /// - Parameter isHidden: <#isHidden description#>
  312. /// - Returns: <#description#>
  313. func adjustPhotoMaterialFrame(isHidden _: Bool = true) {
  314. // if isHidden {
  315. // materialHeadView.alpha = 0
  316. // materialHeadView.frame = CGRect(x: 0, y: 0, width: materialHeadView.frame.width, height: 0)
  317. // photoMaterialVc.updateFrame(newFrame: CGRect(x: 0, y: choseLocalAllBtn.frame.maxY + margin, width: view.frame.width, height: view.frame.height - (choseLocalAllBtn.frame.maxY + margin + bottomRemindView.frame.height) - (selectedDataCount > 0 ? materialListView.frame.height : 0)), isAnimate: true)
  318. // } else {
  319. // materialHeadView.isHidden = false
  320. // materialHeadView.alpha = 1
  321. // materialHeadView.frame = CGRect(x: margin / 2, y: choseLocalAllBtn.frame.maxY + margin, width: view.frame.width - margin, height: topImageH)
  322. // photoMaterialVc.updateFrame(newFrame: CGRect(x: 0, y: (choseLocalAllBtn.frame.maxY + margin + topImageH) + margin / 2, width: view.frame.width, height: view.frame.height - ((choseLocalAllBtn.frame.maxY + margin + topImageH) + margin + bottomRemindView.frame.height) - (selectedDataCount > 0 ? materialListView.frame.height : 0)), isAnimate: true)
  323. // }
  324. }
  325. /// 更新frame
  326. /// - Parameter contentOffset: <#contentOffset description#>
  327. func updateMaterialHeadFrame(contentOffset _: CGPoint) {
  328. // BFLog(message: "===\((navHeadImageView?.frame.maxY ?? cDevice_iPhoneNavBarAndStatusBarHei) + topImageH),\(contentOffset.y)")
  329. // if !materialHeadView.isHidden, contentOffset.y <= ((navHeadImageView?.frame.maxY ?? cDevice_iPhoneNavBarAndStatusBarHei) + topImageH), contentOffset.y >= 0 {
  330. // materialHeadView.frame.origin.y = (navHeadImageView?.frame.maxY ?? cDevice_iPhoneNavBarAndStatusBarHei) - contentOffset.y
  331. // photoMaterialVc.updateFrame(newFrame: CGRect(x: 0, y: materialHeadView.frame.maxY + margin / 2, width: view.frame.width, height: view.frame.height - (materialHeadView.frame.maxY + margin + bottomRemindView.frame.height) - (selectedDataCount > 0 ? materialListView.frame.height : 0)))
  332. // }
  333. }
  334. /// 处理已经选择的数据
  335. /// - Returns: <#description#>
  336. func dealWithSelectedMaterials(isDissmiss: Bool, isChose: Bool, materialData: PQEditVisionTrackMaterialsModel?) {
  337. // 添加当前素材
  338. if materialData != nil {
  339. if isChose {
  340. materialListView.addMaterialData(materialData: materialData!)
  341. } else {
  342. photoMaterialVc.deSeletedMaterialData(materialData: materialData)
  343. }
  344. }
  345. if isChose && !isDissmiss && materialListView.frame.minY > (bottomRemindView.frame.minY - 88) {
  346. UIView.animate(withDuration: 0.5, delay: 0, options: .allowUserInteraction) { [weak self] in
  347. self?.materialListView.frame = CGRect(x: 0, y: (self?.bottomRemindView.frame.minY ?? 0) - 88, width: cScreenWidth, height: 88)
  348. self?.photoMaterialVc.updateFrame(newFrame: CGRect(x: 0, y: self?.photoMaterialVc.view.frame.minY ?? 0, width: self?.photoMaterialVc.view.frame.width ?? 0, height: (self?.photoMaterialVc.view.frame.height ?? 0) - 88))
  349. } completion: { _ in
  350. }
  351. } else if isDissmiss && materialListView.frame.minY != cScreenHeigth {
  352. UIView.animate(withDuration: 0.5, delay: 0, options: .allowUserInteraction) { [weak self] in
  353. self?.materialListView.frame = CGRect(x: 0, y: cScreenHeigth, width: cScreenWidth, height: 88)
  354. self?.photoMaterialVc.updateFrame(newFrame: CGRect(x: 0, y: self?.photoMaterialVc.view.frame.minY ?? 0, width: self?.photoMaterialVc.view.frame.width ?? 0, height: (self?.photoMaterialVc.view.frame.height ?? 0) + 88))
  355. } completion: { _ in
  356. }
  357. }
  358. }
  359. }