Commit 227e8318 authored by CZ1004's avatar CZ1004

【新增】撤回功能,照片详情页面

parent ba9a2776
...@@ -48,11 +48,7 @@ class HomePhotosDetailViewController : BaseViewController { ...@@ -48,11 +48,7 @@ class HomePhotosDetailViewController : BaseViewController {
var datas : [AssetModel] = [] var datas : [AssetModel] = []
// 排序 // 排序
var currentSort : Int = 0 { var currentSort : Int = 0
didSet{
clearSelected()
}
}
// 当前页面选中的 // 当前页面选中的
var selectedModel : [AssetModel] = [] { var selectedModel : [AssetModel] = [] {
...@@ -651,9 +647,6 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti ...@@ -651,9 +647,6 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
// 清理下缓存数据 // 清理下缓存数据
PhotoDataManager.manager.removeDataWhenDeleteInPage(data: self.selectedModel) PhotoDataManager.manager.removeDataWhenDeleteInPage(data: self.selectedModel)
// 更新页面 // 更新页面
DispatchQueue.main.async { DispatchQueue.main.async {
// 删除完成之后,移除下当前选择的数据 // 删除完成之后,移除下当前选择的数据
...@@ -668,10 +661,4 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti ...@@ -668,10 +661,4 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
setDefaultPage() setDefaultPage()
} }
func clearSelected() {
self.selectedModel.removeAll()
}
} }
...@@ -39,11 +39,7 @@ class HomeVideoDetailController :BaseViewController { ...@@ -39,11 +39,7 @@ class HomeVideoDetailController :BaseViewController {
var model : HomePhotosModel var model : HomePhotosModel
// 排序 // 排序
var currentSort : Int = 0 { var currentSort : Int = 0
didSet{
clearSelected()
}
}
// 当前页面选中的 // 当前页面选中的
var selectedModel : [AssetModel] = [] { var selectedModel : [AssetModel] = [] {
...@@ -569,11 +565,6 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie ...@@ -569,11 +565,6 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
} }
func clearSelected() {
self.selectedModel.removeAll()
}
/// 改变标题 /// 改变标题
func changeHeaderTitle(){ func changeHeaderTitle(){
var title : String = "Largest" var title : String = "Largest"
......
//
// PhotoDetailViewController.swift
// PhoneManager
//
// Created by edy on 2025/5/14.
//
import UIKit
class PhotoDetailViewController : BaseViewController {
lazy var showView : PMScaleImageView = {
let view = PMScaleImageView()
return view
}()
lazy var closeButton : UIButton = {
let view = UIButton(type: .custom)
view.setImage(UIImage(named: "ic_close_charging"), for: .normal)
view.addTarget(self, action: #selector(closeButtonAction), for: .touchUpInside)
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubview(self.closeButton)
self.closeButton.snp.makeConstraints { make in
make.left.equalToSuperview().offset(15)
make.top.equalToSuperview().offset(statusBarHeight + 8)
make.width.height.equalTo(28)
}
self.view.addSubview(self.showView)
self.showView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(statusBarHeight + 44)
make.bottom.equalTo(-safeHeight)
}
}
@objc func closeButtonAction(){
self.dismiss(animated: true)
}
}
...@@ -44,16 +44,20 @@ class PhotoRemoveViewController: BaseViewController { ...@@ -44,16 +44,20 @@ class PhotoRemoveViewController: BaseViewController {
}() }()
// MARK: - 初始化 // MARK: - 初始化
init(data: [AssetModel],currentIndex:Int,mediaType:TrashTypeEnum) { init(data: [AssetModel],currentIndex:Int,mediaType:TrashTypeEnum) {
self.mediaType = mediaType self.mediaType = mediaType
let tempData = data let tempData = data
// 从currentIndex截断拼接在末尾,设置currentIndex为0 // 从currentIndex截断拼接在末尾,设置currentIndex为0,将单利的数据拼接在最前面
let result = Array(tempData[currentIndex...]) + Array(tempData[..<currentIndex]) var tempArray : [AssetModel] = []
self.currentIndex = 0 if let type = self.mediaType{
if let dataSg = Singleton.shared.trashData[type]{
tempArray = dataSg
}
}
let result = tempArray + Array(tempData[currentIndex...]) + Array(tempData[..<currentIndex])
self.currentIndex = tempArray.count
self.dataModel = result self.dataModel = result
super.init(nibName: nil, bundle: nil) super.init(nibName: nil, bundle: nil)
} }
...@@ -100,8 +104,37 @@ class PhotoRemoveViewController: BaseViewController { ...@@ -100,8 +104,37 @@ class PhotoRemoveViewController: BaseViewController {
} }
} }
self.navView.reSetCallBack = {
if self.currentIndex > 0 {
self.currentIndex = self.currentIndex - 1
// 重新设置下图片
self.updateViewContents()
// 视图层级处理
self.bringCurrentViewToFront()
}
// 移除单利中当前类型数组的最后一个数据
self.removeCurrentMediaTypeTrashLastData()
// 移除完成后 重新设置下按钮状态
self.showCurrentPageUIWhenTashDataChanged()
}
showCurrentPageUIWhenTashDataChanged() showCurrentPageUIWhenTashDataChanged()
} }
private func removeCurrentMediaTypeTrashLastData() {
// 移除单利中当前类型最后一个数据
if let type = self.mediaType{
if let dataSg = Singleton.shared.trashData[type]{
var tempArray = dataSg
if tempArray.count > 0 {
tempArray.removeLast()
}
Singleton.shared.trashData[type] = tempArray
}
}
}
override func viewDidDisappear(_ animated: Bool) { override func viewDidDisappear(_ animated: Bool) {
...@@ -238,13 +271,13 @@ class PhotoRemoveViewController: BaseViewController { ...@@ -238,13 +271,13 @@ class PhotoRemoveViewController: BaseViewController {
showCurrentPageUIWhenTashDataChanged() showCurrentPageUIWhenTashDataChanged()
} }
/// 将保留列表单利数据存到数据库 /// 将保留列表单利数据存到数据库
func saveDataToKeepListDB(){ func saveDataToKeepListDB(){
let uinqueId = UUID().uuidString
if let type = self.mediaType{ if let type = self.mediaType{
if let dataSg = Singleton.shared.keepList[type]{ if let dataSg = Singleton.shared.keepList[type]{
for item in dataSg{ for item in dataSg{
// 如果是视频的话不会进行分组,所以每次传入不同的id组
let uinqueId = UUID().uuidString
let success = GroupDatabase.shared.insert(localIdentifier: item.localIdentifier, assetSize: item.assetSize, createDate: item.createDate, mediaType: type.dbType,groupId: uinqueId) let success = GroupDatabase.shared.insert(localIdentifier: item.localIdentifier, assetSize: item.assetSize, createDate: item.createDate, mediaType: type.dbType,groupId: uinqueId)
if success == false { if success == false {
Print("保留单利数据到数据库保留列表失败") Print("保留单利数据到数据库保留列表失败")
......
...@@ -498,7 +498,7 @@ class HomeInfoTitleView:UIView { ...@@ -498,7 +498,7 @@ class HomeInfoTitleView:UIView {
self.filterButton.snp.makeConstraints { make in self.filterButton.snp.makeConstraints { make in
make.top.equalToSuperview().offset(35) make.centerY.equalTo(self.titleLabel.snp.centerY)
make.right.equalToSuperview().offset(-15) make.right.equalToSuperview().offset(-15)
make.height.equalTo(28) make.height.equalTo(28)
make.width.equalTo(98) make.width.equalTo(98)
......
...@@ -20,6 +20,8 @@ class PhotoRemoveNavView: UIView { ...@@ -20,6 +20,8 @@ class PhotoRemoveNavView: UIView {
private var topConstraint: Constraint? private var topConstraint: Constraint?
var reSetCallBack:()->Void = {}
public var mediaType : TrashTypeEnum = .shot { public var mediaType : TrashTypeEnum = .shot {
didSet{ didSet{
if mediaType == .video { if mediaType == .video {
...@@ -99,7 +101,7 @@ class PhotoRemoveNavView: UIView { ...@@ -99,7 +101,7 @@ class PhotoRemoveNavView: UIView {
} }
@objc private func resetButtonAction() { @objc private func resetButtonAction() {
self.reSetCallBack()
} }
} }
...@@ -18,6 +18,7 @@ class PhotosRemoveBaseView: UIView { ...@@ -18,6 +18,7 @@ class PhotosRemoveBaseView: UIView {
var innerVideoController : VideoViewController? var innerVideoController : VideoViewController?
func reload(index:Int) -> Void { func reload(index:Int) -> Void {
if let url = url { if let url = url {
self.innerVideoController = VideoViewController() self.innerVideoController = VideoViewController()
...@@ -51,6 +52,11 @@ class PhotosRemoveBaseView: UIView { ...@@ -51,6 +52,11 @@ class PhotosRemoveBaseView: UIView {
self.layer.cornerRadius = 20 self.layer.cornerRadius = 20
self.clipsToBounds = true self.clipsToBounds = true
setupUI() setupUI()
self.imageView.isUserInteractionEnabled = true
let tap = UITapGestureRecognizer()
tap.addTarget(self, action: #selector(showDeatail))
self.imageView.addGestureRecognizer(tap)
} }
...@@ -120,4 +126,12 @@ class PhotosRemoveBaseView: UIView { ...@@ -120,4 +126,12 @@ class PhotosRemoveBaseView: UIView {
self.rightButton.center = self.center self.rightButton.center = self.center
} }
} }
@objc func showDeatail(){
let vc : PhotoDetailViewController = PhotoDetailViewController()
vc.showView.icon = self.imageView.image
vc.modalPresentationStyle = .fullScreen
self.responderViewController()?.present(vc, animated: true)
}
} }
...@@ -32,7 +32,7 @@ class YearMonthPickerView: UIView { ...@@ -32,7 +32,7 @@ class YearMonthPickerView: UIView {
return picker return picker
}() }()
private let years = Array(Array(Calendar.current.component(.year, from: Date())-30...Calendar.current.component(.year, from: Date())).reversed()) private let years = Array(Array(1970...Calendar.current.component(.year, from: Date())).reversed())
private lazy var months: [String] = { private lazy var months: [String] = {
let formatter = DateFormatter() let formatter = DateFormatter()
......
...@@ -19,7 +19,7 @@ class TrashDataManager { ...@@ -19,7 +19,7 @@ class TrashDataManager {
// 清空单利和数据库的数据 // 清空单利和数据库的数据
clearCurrentMediaTypeTrashSigtonData() clearCurrentMediaTypeTrashSigtonData()
clearCurrentMediaTypeTrashDBData() clearCurrentMediaTypeTrashDBData()
// 删除完成之后重新 // 删除完成之后回调
comlete() comlete()
} }
}else{ }else{
......
...@@ -63,7 +63,6 @@ class PMScaleImageView: UIView , UIScrollViewDelegate { ...@@ -63,7 +63,6 @@ class PMScaleImageView: UIView , UIScrollViewDelegate {
}() }()
func scrollViewDidZoom(_ scrollView: UIScrollView) { func scrollViewDidZoom(_ scrollView: UIScrollView) {
Print(scrollView.zoomScale)
if scrollView.zoomScale > 1.5 { if scrollView.zoomScale > 1.5 {
self.Radius = 16 self.Radius = 16
}else{ }else{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment