Commit 227e8318 authored by CZ1004's avatar CZ1004

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

parent ba9a2776
......@@ -48,11 +48,7 @@ class HomePhotosDetailViewController : BaseViewController {
var datas : [AssetModel] = []
// 排序
var currentSort : Int = 0 {
didSet{
clearSelected()
}
}
var currentSort : Int = 0
// 当前页面选中的
var selectedModel : [AssetModel] = [] {
......@@ -651,9 +647,6 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
// 清理下缓存数据
PhotoDataManager.manager.removeDataWhenDeleteInPage(data: self.selectedModel)
// 更新页面
DispatchQueue.main.async {
// 删除完成之后,移除下当前选择的数据
......@@ -668,10 +661,4 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
setDefaultPage()
}
func clearSelected() {
self.selectedModel.removeAll()
}
}
......@@ -39,11 +39,7 @@ class HomeVideoDetailController :BaseViewController {
var model : HomePhotosModel
// 排序
var currentSort : Int = 0 {
didSet{
clearSelected()
}
}
var currentSort : Int = 0
// 当前页面选中的
var selectedModel : [AssetModel] = [] {
......@@ -569,11 +565,6 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
func clearSelected() {
self.selectedModel.removeAll()
}
/// 改变标题
func changeHeaderTitle(){
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 {
}()
// MARK: - 初始化
init(data: [AssetModel],currentIndex:Int,mediaType:TrashTypeEnum) {
self.mediaType = mediaType
let tempData = data
// 从currentIndex截断拼接在末尾,设置currentIndex为0
let result = Array(tempData[currentIndex...]) + Array(tempData[..<currentIndex])
self.currentIndex = 0
// 从currentIndex截断拼接在末尾,设置currentIndex为0,将单利的数据拼接在最前面
var tempArray : [AssetModel] = []
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
super.init(nibName: nil, bundle: nil)
}
......@@ -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()
}
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) {
......@@ -238,13 +271,13 @@ class PhotoRemoveViewController: BaseViewController {
showCurrentPageUIWhenTashDataChanged()
}
/// 将保留列表单利数据存到数据库
func saveDataToKeepListDB(){
let uinqueId = UUID().uuidString
if let type = self.mediaType{
if let dataSg = Singleton.shared.keepList[type]{
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)
if success == false {
Print("保留单利数据到数据库保留列表失败")
......
......@@ -498,7 +498,7 @@ class HomeInfoTitleView:UIView {
self.filterButton.snp.makeConstraints { make in
make.top.equalToSuperview().offset(35)
make.centerY.equalTo(self.titleLabel.snp.centerY)
make.right.equalToSuperview().offset(-15)
make.height.equalTo(28)
make.width.equalTo(98)
......
......@@ -20,6 +20,8 @@ class PhotoRemoveNavView: UIView {
private var topConstraint: Constraint?
var reSetCallBack:()->Void = {}
public var mediaType : TrashTypeEnum = .shot {
didSet{
if mediaType == .video {
......@@ -99,7 +101,7 @@ class PhotoRemoveNavView: UIView {
}
@objc private func resetButtonAction() {
self.reSetCallBack()
}
}
......@@ -18,6 +18,7 @@ class PhotosRemoveBaseView: UIView {
var innerVideoController : VideoViewController?
func reload(index:Int) -> Void {
if let url = url {
self.innerVideoController = VideoViewController()
......@@ -51,6 +52,11 @@ class PhotosRemoveBaseView: UIView {
self.layer.cornerRadius = 20
self.clipsToBounds = true
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 {
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 {
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] = {
let formatter = DateFormatter()
......
......@@ -19,7 +19,7 @@ class TrashDataManager {
// 清空单利和数据库的数据
clearCurrentMediaTypeTrashSigtonData()
clearCurrentMediaTypeTrashDBData()
// 删除完成之后重新
// 删除完成之后回调
comlete()
}
}else{
......
......@@ -63,7 +63,6 @@ class PMScaleImageView: UIView , UIScrollViewDelegate {
}()
func scrollViewDidZoom(_ scrollView: UIScrollView) {
Print(scrollView.zoomScale)
if scrollView.zoomScale > 1.5 {
self.Radius = 16
}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