Commit 39235c65 authored by CZ1004's avatar CZ1004

【修改】优化

parent 2907ba5e
...@@ -113,6 +113,11 @@ class PhotoManager{ ...@@ -113,6 +113,11 @@ class PhotoManager{
private(set) var screenShotTotalSize:Int64 = 0 private(set) var screenShotTotalSize:Int64 = 0
private(set) var videoTotalSize:Int64 = 0 private(set) var videoTotalSize:Int64 = 0
private(set) var otherTotalSize:Int64 = 0 private(set) var otherTotalSize:Int64 = 0
var trash = TrashDatabase.shared.queryAll().compactMap{$0.localIdentifier}
var keep = GroupDatabase.shared.queryAll().compactMap{$0.localIdentifier}
private var currentPage: Int = 0 private var currentPage: Int = 0
private let pageSize: Int = 50 // 每次加载的数量 private let pageSize: Int = 50 // 每次加载的数量
...@@ -722,11 +727,12 @@ extension PhotoManager{ ...@@ -722,11 +727,12 @@ extension PhotoManager{
let similarPhotos = filterGroups(similarModels, byExcludingIDs: deletes) let similarPhotos = filterGroups(similarModels, byExcludingIDs: deletes)
let similarVideos = filterGroups(similarVideoModels, byExcludingIDs: deletes) let similarVideos = filterGroups(similarVideoModels, byExcludingIDs: deletes)
let similarShots = filterGroups(similarScreenShotModels, byExcludingIDs: deletes) let similarShots = filterGroups(similarScreenShotModels, byExcludingIDs: deletes)
let duplicates = filterGroups(duplicateModels, byExcludingIDs: deletes)
similarModels = similarPhotos similarModels = similarPhotos
similarVideoModels = similarVideos similarVideoModels = similarVideos
similarScreenShotModels = similarShots similarScreenShotModels = similarShots
duplicateModels = duplicates
// 保存到本地 // 保存到本地
saveToLocal(type: "video", models: self.videoModels) saveToLocal(type: "video", models: self.videoModels)
...@@ -756,4 +762,35 @@ extension PhotoManager{ ...@@ -756,4 +762,35 @@ extension PhotoManager{
} }
} }
// 重写获取垃圾桶和保留刷新进行刷新
func reloadTrashAndKeep(){
trash = TrashDatabase.shared.queryAll().compactMap{$0.localIdentifier}
keep = GroupDatabase.shared.queryAll().compactMap{$0.localIdentifier}
filterResource()
}
// 基本资源过滤保留和垃圾桶资源
func filterResource(){
let filterArray = trash + keep
let others = removeAssets(withIdentifiers: filterArray, from: otherModels)
let videos = removeAssets(withIdentifiers: filterArray, from: videoModels)
let screens = removeAssets(withIdentifiers: filterArray, from: screenShotModels)
filterOtherModels = others
filterVideoModels = videos
filterScreenShotModels = screens
let similarPhotos = filterGroups(similarModels, byExcludingIDs: filterArray)
let similarVideos = filterGroups(similarVideoModels, byExcludingIDs: filterArray)
let similarShots = filterGroups(similarScreenShotModels, byExcludingIDs: filterArray)
filterSimilarModels = similarPhotos
filterSimilarVideoModels = similarVideos
filterSimilarScreenShotModels = similarShots
}
} }
...@@ -265,7 +265,9 @@ class HomePhotosDetailViewController : BaseViewController { ...@@ -265,7 +265,9 @@ class HomePhotosDetailViewController : BaseViewController {
/// 获取当前页面数据 /// 获取当前页面数据
/// - Parameter completed: 完成回调 /// - Parameter completed: 完成回调
func getCurrentPageData(completed:@escaping ()->Void){ func getCurrentPageData(completed:@escaping ()->Void){
// FIXME: 从新获取数据
PhotoManager.shared.reloadTrashAndKeep()
var data = self.mediaType == .Other ? PhotoManager.shared.filterOtherModels : PhotoManager.shared.filterScreenShotModels var data = self.mediaType == .Other ? PhotoManager.shared.filterOtherModels : PhotoManager.shared.filterScreenShotModels
// 过滤掉垃圾桶数据 // 过滤掉垃圾桶数据
......
...@@ -101,6 +101,9 @@ class HomeVideoDetailController :BaseViewController { ...@@ -101,6 +101,9 @@ class HomeVideoDetailController :BaseViewController {
/// 获取当前页面数据 /// 获取当前页面数据
/// - Parameter completed: 完成回调 /// - Parameter completed: 完成回调
func getCurrentPageData(completed:@escaping ()->Void){ func getCurrentPageData(completed:@escaping ()->Void){
PhotoManager.shared.reloadTrashAndKeep()
var data = PhotoManager.shared.filterVideoModels var data = PhotoManager.shared.filterVideoModels
// 过滤掉垃圾桶数据 // 过滤掉垃圾桶数据
...@@ -597,11 +600,6 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie ...@@ -597,11 +600,6 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
// 移除当前数据 // 移除当前数据
self.resourceData.removeAll{ $0.localIdentifier == item.localIdentifier } self.resourceData.removeAll{ $0.localIdentifier == item.localIdentifier }
} }
// 清理下缓存数据
//PhotoDataManager.manager.removeDataWhenDeleteInPage(data: self.selectedModel)
PhotoManager.shared.removeDataWhenDeleteInPage(data: self.selectedModel) { PhotoManager.shared.removeDataWhenDeleteInPage(data: self.selectedModel) {
// 删除完成刷新数据 // 删除完成刷新数据
} }
......
...@@ -167,6 +167,15 @@ class HomeInfoView :UIView { ...@@ -167,6 +167,15 @@ class HomeInfoView :UIView {
make.height.equalTo(38) make.height.equalTo(38)
make.width.equalTo(24) make.width.equalTo(24)
} }
self.nextRowButton.isHidden = !self.isShowNextRowButton()
}
/// 是否显示下一个按钮
/// - Returns: 是否显示
func isShowNextRowButton() -> Bool{
return self.ids?.count ?? 0 > 0 && (self.type == .similar || self.type == .similarScreenshots)
} }
func changeValue() { func changeValue() {
...@@ -298,6 +307,7 @@ class HomeInfoView :UIView { ...@@ -298,6 +307,7 @@ class HomeInfoView :UIView {
deleteView.changeContent(title: self.type!.rawValue, seletedCount: seletedNumber) deleteView.changeContent(title: self.type!.rawValue, seletedCount: seletedNumber)
tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: deleteView.isHidden ? 12 : deleteView.height + 12 , right: 0) tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: deleteView.isHidden ? 12 : deleteView.height + 12 , right: 0)
self.nextRowButton.isHidden = !self.isShowNextRowButton()
} }
} }
...@@ -337,18 +347,29 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate { ...@@ -337,18 +347,29 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
/// 让表格自动滚动一行 /// 让表格自动滚动一行
private func tableScrollToNextRow(){ private func tableScrollToNextRow() {
if let indexPath = tableView.indexPathsForVisibleRows?.first {
// 计算下一行的索引 guard let indexPath = tableView.indexPathsForVisibleRows?.first else { return }
let nextRow = indexPath.row + 1
let nextSection = indexPath.section let nextRow = indexPath.row + 1
// 检查下一行是否存在 let nextSection = indexPath.section
if nextRow < tableView.numberOfRows(inSection: nextSection) {
let nextIndexPath = IndexPath(row: nextRow, section: nextSection) // 检查下一行是否存在
// 滚动到下一行 guard nextRow < tableView.numberOfRows(inSection: nextSection) else { return }
tableView.scrollToRow(at: nextIndexPath, at: .top, animated: true)
} let nextIndexPath = IndexPath(row: nextRow, section: nextSection)
}
// 计算目标行的位置
let targetRect = tableView.rectForRow(at: nextIndexPath)
// 向上微调的偏移量(例如 20 点)
let adjustedOffset = CGPoint(
x: 0,
y: targetRect.origin.y - 38 // 修改这里的数值调整微调量
)
// 直接滚动到调整后的位置
tableView.setContentOffset(adjustedOffset, animated: true)
} }
func scrollViewDidScroll(_ scrollView: UIScrollView) { func scrollViewDidScroll(_ scrollView: UIScrollView) {
......
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