Commit 881bb320 authored by CZ1004's avatar CZ1004

【优化】修改部分bug、优化功能

parent 873ecde3
...@@ -21,14 +21,12 @@ class CompressController : BaseViewController { ...@@ -21,14 +21,12 @@ class CompressController : BaseViewController {
private var compressNav:CompressNavView? private var compressNav:CompressNavView?
// 排序 // 排序
var currentSort : Int = 0 { var currentSort : ResouceSortType = .largest {
didSet{ didSet{
clearSelected() clearSelected()
} }
} }
// 资源类型 - 相册或者视频 // 资源类型 - 相册或者视频
var currentResourceType : CompressType = .compressPhoto var currentResourceType : CompressType = .compressPhoto
...@@ -122,25 +120,20 @@ class CompressController : BaseViewController { ...@@ -122,25 +120,20 @@ class CompressController : BaseViewController {
let datas = Singleton.shared.resourceModel let datas = Singleton.shared.resourceModel
if datas.count > 0 { if datas.count > 0 {
// 这里需要重新排序下 // 这里需要重新排序下
if self.currentSort == 0 { self.resourceData = datas
self.resourceData = datas.sorted {$0.assetSize > $1.assetSize } self.sortByType(sortType: self.currentSort)
}else if self.currentSort == 1 {
self.resourceData = datas.sorted {$0.assetSize < $1.assetSize }
}else if self.currentSort == 2 {
self.resourceData = datas.sorted {$0.createDate > $1.createDate }
}else{
self.resourceData = datas.sorted {$0.createDate < $1.createDate }
}
}else{ }else{
PMLoadingHUD.share.show() PMLoadingHUD.share.show("Loading...", "Please wait on the screen. This might take several minutes.")
CompressViewModel().getAllPhotosToAssets(sortType: self.currentSort, assetType: self.currentResourceType) { [weak self] models in CompressViewModel().getAllPhotosToAssets(sortType: self.currentSort, assetType: self.currentResourceType) { [weak self] models in
guard let self else {return} guard let self else {return}
self.resourceData = models self.resourceData = models
Singleton.shared.resourceModel = self.resourceData Singleton.shared.resourceModel = self.resourceData
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
PMLoadingHUD.share.disMiss() PMLoadingHUD.share.disMiss()
} }
} }
} }
}
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
...@@ -236,20 +229,10 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo ...@@ -236,20 +229,10 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
if kind == UICollectionView.elementKindSectionHeader { if kind == UICollectionView.elementKindSectionHeader {
let header = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "CompressCustomHeaderView", for: indexPath) as! CompressCustomHeaderView let header = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "CompressCustomHeaderView", for: indexPath) as! CompressCustomHeaderView
header.callBack = {[weak self] text in header.sortViewSubmitCallBack = { [weak self] fileterModel in
guard let self else {return}
let sortView = CompressSortView(frame: self.view.bounds)
// 这两行是为了进入页面的时候选中
sortView.currentIndex = self.currentSort
sortView.tableView.reloadData()
self.view.addSubview(sortView)
sortView.callBack = {[weak self] sortType in
guard let self else {return} guard let self else {return}
self.currentSort = sortType as! Int self.currentSort = fileterModel.sortType
self.sortByType(sortType: self.currentSort, header: header) self.sortByType(sortType: self.currentSort)
}
} }
header.changeView.callBack = {[weak self] flag in header.changeView.callBack = {[weak self] flag in
guard let self else {return} guard let self else {return}
...@@ -262,9 +245,13 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo ...@@ -262,9 +245,13 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
if self.currentResourceType == .compressPhoto { if self.currentResourceType == .compressPhoto {
self.getViewData() self.getViewData()
}else{ }else{
PMLoadingHUD.share.show("Loading...", "Please wait on the screen. This might take several minutes.")
CompressViewModel().getAllPhotosToAssets(sortType: self.currentSort, assetType: flag) { [weak self] models in CompressViewModel().getAllPhotosToAssets(sortType: self.currentSort, assetType: flag) { [weak self] models in
guard let self else {return} guard let self else {return}
self.resourceData = models self.resourceData = models
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
PMLoadingHUD.share.disMiss()
}
} }
} }
} }
...@@ -282,34 +269,21 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo ...@@ -282,34 +269,21 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
} }
} }
func sortByType(sortType:ResouceSortType){
func sortByType(sortType:Int,header:CompressCustomHeaderView){
let viewModel = CompressViewModel()
switch sortType { switch sortType {
case 0: case .largest:
header.selectlabel.text = "Largest" self.resourceData = self.resourceData.sorted { $0.assetSize > $1.assetSize }
// 按照文件大小降序
self.resourceData = viewModel.sortRsource(resource: self.resourceData, sortType: 1, sortKind: 0)
break
case 1:
header.selectlabel.text = "Smallest"
// 按照文件大小升序
self.resourceData = viewModel.sortRsource(resource: self.resourceData, sortType: 0, sortKind: 0)
break break
case 2: case .smallest:
header.selectlabel.text = "Newest" self.resourceData = self.resourceData.sorted { $0.assetSize < $1.assetSize }
// 按照时间降序
self.resourceData = viewModel.sortRsource(resource: self.resourceData, sortType: 1, sortKind: 1)
break break
case 3: case .latest:
header.selectlabel.text = "Oldest" self.resourceData = self.resourceData.sorted { $0.createDate > $1.createDate }
// 按照时间升序
self.resourceData = viewModel.sortRsource(resource: self.resourceData, sortType: 0, sortKind: 1)
break break
default: case .oldest:
self.resourceData = self.resourceData.sorted { $0.createDate < $1.createDate }
break break
} }
} }
func updateSubmitButton(){ func updateSubmitButton(){
......
...@@ -9,7 +9,7 @@ import Foundation ...@@ -9,7 +9,7 @@ import Foundation
class CompressCustomHeaderView: UICollectionReusableView{ class CompressCustomHeaderView: UICollectionReusableView{
var callBack: callBack<Any> = {text in } var sortViewSubmitCallBack : (ResourceFilterBoxModel)->Void = {model in}
var modeData = [AssetModel]() { var modeData = [AssetModel]() {
didSet{ didSet{
...@@ -51,35 +51,21 @@ class CompressCustomHeaderView: UICollectionReusableView{ ...@@ -51,35 +51,21 @@ class CompressCustomHeaderView: UICollectionReusableView{
return label return label
}() }()
lazy var btnView :UIView = { // 筛选按钮
let view = UIView() lazy var filterButton : UIButton = {
view.backgroundColor = UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1) let button = UIButton(type: .custom)
view.layer.cornerRadius = 16 button.setImage(UIImage(named: "Frame 1"), for: .normal)
view.clipsToBounds = true button.setTitle("The largest", for: .normal)
button.layer.cornerRadius = 14
button.clipsToBounds = true
let tap = UITapGestureRecognizer() button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000)
tap.addTarget(self, action: #selector(selectQulity)) button.titleLabel?.font = UIFont.systemFont(ofSize: 12, weight: .semibold)
view.isUserInteractionEnabled = true button.setTitleColor(UIColor(red: 0.07, green: 0.07, blue: 0.07, alpha: 1), for: .normal)
view.addGestureRecognizer(tap) button.addTarget(self, action: #selector(filterButtonAction), for: .touchUpInside)
button.isHidden = false
return button
return view
}() }()
lazy var selectImageView :UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "ic_newest_similar")
return view
}()
lazy var selectlabel :UILabel = {
let label = UILabel()
label.text = "Largest"
label.textAlignment = .center
label.textColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1)
label.font = UIFont.systemFont(ofSize: 14, weight: .bold)
return label
}()
lazy var siezLabel :UILabel = { lazy var siezLabel :UILabel = {
let label = UILabel() let label = UILabel()
label.text = "1.02 GB" label.text = "1.02 GB"
...@@ -128,9 +114,7 @@ class CompressCustomHeaderView: UICollectionReusableView{ ...@@ -128,9 +114,7 @@ class CompressCustomHeaderView: UICollectionReusableView{
private func setUI(){ private func setUI(){
self.addSubview(self.titlelabel) self.addSubview(self.titlelabel)
self.addSubview(self.btnView) self.addSubview(self.filterButton)
self.btnView.addSubview(self.selectImageView)
self.btnView.addSubview(self.selectlabel)
self.addSubview(self.siezLabel) self.addSubview(self.siezLabel)
self.addSubview(self.changeView) self.addSubview(self.changeView)
self.addSubview(self.tipView) self.addSubview(self.tipView)
...@@ -144,27 +128,17 @@ class CompressCustomHeaderView: UICollectionReusableView{ ...@@ -144,27 +128,17 @@ class CompressCustomHeaderView: UICollectionReusableView{
make.height.equalTo(28) make.height.equalTo(28)
} }
self.btnView.snp.makeConstraints { make in self.filterButton.snp.makeConstraints { make in
make.centerY.equalTo(self.titlelabel.snp.centerY)
make.right.equalToSuperview().offset(0) make.right.equalToSuperview().offset(0)
make.top.equalToSuperview().offset(12) make.height.equalTo(28)
make.width.equalTo(103 * RScreenW()) make.width.equalTo(98)
make.height.equalTo(32)
}
self.selectImageView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(12)
make.centerY.equalToSuperview()
make.width.height.equalTo(20)
}
self.selectlabel.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-12)
make.top.equalToSuperview().offset(6)
make.width.equalTo(60 * RScreenW())
make.height.equalTo(20)
} }
self.siezLabel.snp.makeConstraints { make in self.siezLabel.snp.makeConstraints { make in
make.left.equalTo(0) make.left.equalTo(0)
make.right.equalTo(0) make.right.equalTo(0)
make.top.equalTo(self.btnView.snp.bottom).offset(8) make.top.equalTo(self.filterButton.snp.bottom).offset(8)
make.height.equalTo(20) make.height.equalTo(20)
} }
self.changeView.snp.makeConstraints { make in self.changeView.snp.makeConstraints { make in
...@@ -193,10 +167,20 @@ class CompressCustomHeaderView: UICollectionReusableView{ ...@@ -193,10 +167,20 @@ class CompressCustomHeaderView: UICollectionReusableView{
} }
@objc func selectQulity(){ @objc func filterButtonAction(){
if let cWindow = cWindow {
let filterView : ResourceFilterBoxView = ResourceFilterBoxView.init(frame: cWindow.bounds)
// 添加毛玻璃效果
cWindow.showBlur()
callBack("selectedQulity") cWindow.addSubview(filterView)
filterView.submitCallBack = {model in
DispatchQueue.main.async {
self.filterButton.setTitle(model.sortType.rawValue, for: .normal)
}
self.sortViewSubmitCallBack(model)
}
}
} }
......
...@@ -67,7 +67,7 @@ class CompressViewModel{ ...@@ -67,7 +67,7 @@ class CompressViewModel{
/// 获取相册所有图片 /// 获取相册所有图片
/// - Returns: 图片信息 /// - Returns: 图片信息
func getAllPhotosToAssets(sortType: Int, assetType : CompressType,_ finished: @escaping Finished){ func getAllPhotosToAssets(sortType: ResouceSortType, assetType : CompressType,_ finished: @escaping Finished){
var models : [AssetModel] = [] var models : [AssetModel] = []
...@@ -108,11 +108,11 @@ class CompressViewModel{ ...@@ -108,11 +108,11 @@ class CompressViewModel{
group.leave() group.leave()
if count == assetsArray.count { if count == assetsArray.count {
// 默认按照文件大小排序 // 默认按照文件大小排序
if sortType == 0 { if sortType == .largest {
finished(models.sorted { $0.assetSize > $1.assetSize }) finished(models.sorted { $0.assetSize > $1.assetSize })
}else if sortType == 1 { }else if sortType == .smallest {
finished(models.sorted { $0.assetSize < $1.assetSize }) finished(models.sorted { $0.assetSize < $1.assetSize })
}else if sortType == 2 { }else if sortType == .latest {
finished(models.sorted { $0.createDate > $1.createDate }) finished(models.sorted { $0.createDate > $1.createDate })
}else{ }else{
finished(models.sorted { $0.createDate < $1.createDate }) finished(models.sorted { $0.createDate < $1.createDate })
...@@ -123,29 +123,6 @@ class CompressViewModel{ ...@@ -123,29 +123,6 @@ class CompressViewModel{
} }
} }
/// 对资源进行排序
/// - Parameters:
/// - resource: 原资源
/// - sortType: 排序的类型,升序或者降序。0-升序,1-降序
/// - sortKind: 排序的种类 大小或者时间 0-大小,1-时间
/// - Returns: 返回排序结果
func sortRsource(resource:[AssetModel],sortType:Int,sortKind:Int)->[AssetModel]{
if sortKind == 0 {
if sortType == 0 {
return resource.sorted { $0.assetSize < $1.assetSize }
}else{
return resource.sorted { $0.assetSize > $1.assetSize }
}
}else{
if sortType == 0 {
return resource.sorted { $0.createDate < $1.createDate }
}else{
return resource.sorted { $0.createDate > $1.createDate }
}
}
}
/// 视频压缩 /// 视频压缩
/// - Parameters: /// - Parameters:
......
...@@ -314,6 +314,11 @@ class HomeInfoViewController:BaseViewController { ...@@ -314,6 +314,11 @@ class HomeInfoViewController:BaseViewController {
showTipsVC() showTipsVC()
self.tablewView.keepAllNoDataCallBack = {
self.ids = []
self.setDefaultPage()
}
} }
......
...@@ -37,7 +37,7 @@ class HomePhotosDetailViewController : BaseViewController { ...@@ -37,7 +37,7 @@ class HomePhotosDetailViewController : BaseViewController {
var resourceData : [AssetModel] = [] var resourceData : [AssetModel] = []
// 排序 // 排序
var currentSort : Int = 0 var currentSort : ResouceSortType = .largest
// 当前页面选中的 // 当前页面选中的
var selectedModel : [AssetModel] = [] { var selectedModel : [AssetModel] = [] {
...@@ -253,13 +253,13 @@ class HomePhotosDetailViewController : BaseViewController { ...@@ -253,13 +253,13 @@ class HomePhotosDetailViewController : BaseViewController {
if self.resourceData.count == 0 { if self.resourceData.count == 0 {
self.defaultImageView.isHidden = false self.defaultImageView.isHidden = false
self.defaultTipLabel.isHidden = false self.defaultTipLabel.isHidden = false
self.currentHeaderView?.btnView.isHidden = true self.currentHeaderView?.filterButton.isHidden = true
self.videoDetailNavView?.startSelectButton.isHidden = true self.videoDetailNavView?.startSelectButton.isHidden = true
self.deleteButtonView.isHidden = true self.deleteButtonView.isHidden = true
}else{ }else{
self.defaultImageView.isHidden = true self.defaultImageView.isHidden = true
self.defaultTipLabel.isHidden = true self.defaultTipLabel.isHidden = true
self.currentHeaderView?.btnView.isHidden = false self.currentHeaderView?.filterButton.isHidden = false
self.videoDetailNavView?.startSelectButton.isHidden = false self.videoDetailNavView?.startSelectButton.isHidden = false
self.deleteButtonView.isHidden = false self.deleteButtonView.isHidden = false
} }
...@@ -564,19 +564,22 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti ...@@ -564,19 +564,22 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
header.modelTitlelabel.text = self.mediaType?.rawValue header.modelTitlelabel.text = self.mediaType?.rawValue
currentHeaderView = header currentHeaderView = header
header.sortCallback = {[weak self] in header.sortViewSubmitCallBack = {[weak self] filterModel in
guard let self else {return} guard let self else {return}
let sortView = CompressSortView(frame: self.view.bounds)
// 这两行是为了进入页面的时候选中
sortView.currentIndex = self.currentSort
sortView.tableView.reloadData()
self.view.addSubview(sortView) var dataS : [AssetModel] = []
sortView.callBack = {[weak self] sortType in if self.mediaType == .Other{
guard let self else {return} dataS = PhotoManager.shared.filterOtherModels
self.currentSort = sortType as! Int }else {
self.sortByType(sortType: self.currentSort) dataS = PhotoManager.shared.filterScreenShotModels
self.changeHeaderTitle() }
let tempData = self.filterDataByDate(orgModels: dataS , startDate: filterModel.startDate, endDate: filterModel.endDate)
// 重新更新下数据源
self.resourceData = tempData
self.sortByType(sortType: filterModel.sortType)
self.currentSort = filterModel.sortType
DispatchQueue.main.async {
self.collectionView.reloadData()
} }
} }
...@@ -592,52 +595,33 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti ...@@ -592,52 +595,33 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
} }
} }
/// 改变标题 func filterDataByDate(orgModels : [AssetModel], startDate:Date? ,endDate : Date?)->[AssetModel]{
func changeHeaderTitle(){ var array = orgModels
var title : String = "Largest" if startDate != nil {
switch self.currentSort { array = array.filter({$0.createDate >= startDate!})
case 0:
title = "Largest"
break
case 1:
title = "Smallest"
break
case 2:
title = "Newest"
break
case 3:
title = "Oldest"
break
default:
break
} }
DispatchQueue.main.async { if endDate != nil {
self.currentHeaderView!.selectlabel.text = title array = array.filter({$0.createDate <= endDate!})
self.collectionView.reloadData()
} }
return array
} }
/// 对当前页面资源排序(注意这里获取的资源是image) /// 对当前页面资源排序(注意这里获取的资源是image)
/// - Parameter sortType: 排序类型 /// - Parameter sortType: 排序类型
func sortByType(sortType:Int){ func sortByType(sortType:ResouceSortType){
switch sortType { switch sortType {
case 0: case .largest:
self.resourceData = self.resourceData.sorted { $0.assetSize > $1.assetSize } self.resourceData = self.resourceData.sorted { $0.assetSize > $1.assetSize }
break break
case 1: case .smallest:
self.resourceData = self.resourceData.sorted { $0.assetSize < $1.assetSize } self.resourceData = self.resourceData.sorted { $0.assetSize < $1.assetSize }
break break
case 2: case .latest:
self.resourceData = self.resourceData.sorted { $0.createDate > $1.createDate } self.resourceData = self.resourceData.sorted { $0.createDate > $1.createDate }
break break
case 3: case .oldest:
self.resourceData = self.resourceData.sorted { $0.createDate < $1.createDate } self.resourceData = self.resourceData.sorted { $0.createDate < $1.createDate }
break break
default:
break
} }
} }
......
...@@ -30,7 +30,7 @@ class HomeVideoDetailController :BaseViewController { ...@@ -30,7 +30,7 @@ class HomeVideoDetailController :BaseViewController {
var resourceData : [AssetModel] = [] var resourceData : [AssetModel] = []
// 排序 // 排序
var currentSort : Int = 0 var currentSort : ResouceSortType = .largest
// 当前页面选中的 // 当前页面选中的
var selectedModel : [AssetModel] = [] { var selectedModel : [AssetModel] = [] {
...@@ -488,19 +488,17 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie ...@@ -488,19 +488,17 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
currentHeaderView = header currentHeaderView = header
header.compressionTipView.reloadData() header.compressionTipView.reloadData()
header.sizeLabel.text = "\(self.resourceData.count) Videos" header.sizeLabel.text = "\(self.resourceData.count) Videos"
header.sortCallback = {[weak self] in header.sortViewSubmitCallBack = {[weak self] filterModel in
guard let self else {return} guard let self else {return}
let sortView = CompressSortView(frame: self.view.bounds)
// 这两行是为了进入页面的时候选中
sortView.currentIndex = self.currentSort
sortView.tableView.reloadData()
self.view.addSubview(sortView) let dataS : [AssetModel] = PhotoManager.shared.filterVideoModels
sortView.callBack = {[weak self] sortType in let tempData = self.filterDataByDate(orgModels: dataS , startDate: filterModel.startDate, endDate: filterModel.endDate)
guard let self else {return} // 重新更新下数据源
self.currentSort = sortType as! Int self.resourceData = tempData
self.sortByType(sortType: self.currentSort) self.sortByType(sortType: filterModel.sortType)
self.changeHeaderTitle() self.currentSort = filterModel.sortType
DispatchQueue.main.async {
self.collectionView.reloadData()
} }
} }
return header return header
...@@ -515,6 +513,17 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie ...@@ -515,6 +513,17 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
} }
} }
func filterDataByDate(orgModels : [AssetModel], startDate:Date? ,endDate : Date?)->[AssetModel]{
var array = orgModels
if startDate != nil {
array = array.filter({$0.createDate >= startDate!})
}
if endDate != nil {
array = array.filter({$0.createDate <= endDate!})
}
return array
}
// 显示弹出框 // 显示弹出框
func showPopView(popView: AdvTipDeleteView){ func showPopView(popView: AdvTipDeleteView){
...@@ -701,13 +710,13 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie ...@@ -701,13 +710,13 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
if self.resourceData.count == 0 { if self.resourceData.count == 0 {
self.defaultImageView.isHidden = false self.defaultImageView.isHidden = false
self.defaultTipLabel.isHidden = false self.defaultTipLabel.isHidden = false
self.currentHeaderView?.btnView.isHidden = true self.currentHeaderView?.filterButton.isHidden = true
self.videoDetailNavView?.startSelectButton.isHidden = true self.videoDetailNavView?.startSelectButton.isHidden = true
self.deleteButtonView.deleteButton.isHidden = true self.deleteButtonView.deleteButton.isHidden = true
}else{ }else{
self.defaultImageView.isHidden = true self.defaultImageView.isHidden = true
self.defaultTipLabel.isHidden = true self.defaultTipLabel.isHidden = true
self.currentHeaderView?.btnView.isHidden = false self.currentHeaderView?.filterButton.isHidden = false
self.videoDetailNavView?.startSelectButton.isHidden = false self.videoDetailNavView?.startSelectButton.isHidden = false
self.deleteButtonView.deleteButton.isHidden = false self.deleteButtonView.deleteButton.isHidden = false
} }
...@@ -745,52 +754,20 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie ...@@ -745,52 +754,20 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
setDefaultPage() setDefaultPage()
} }
func sortByType(sortType:ResouceSortType){
/// 改变标题
func changeHeaderTitle(){
var title : String = "Largest"
switch self.currentSort {
case 0:
title = "Largest"
break
case 1:
title = "Smallest"
break
case 2:
title = "Newest"
break
case 3:
title = "Oldest"
break
default:
break
}
DispatchQueue.main.async {
self.currentHeaderView!.selectlabel.text = title
self.collectionView.reloadData()
}
}
func sortByType(sortType:Int){
switch sortType { switch sortType {
case 0: case .largest:
self.resourceData = self.resourceData.sorted { $0.assetSize > $1.assetSize } self.resourceData = self.resourceData.sorted { $0.assetSize > $1.assetSize }
break break
case 1: case .smallest:
self.resourceData = self.resourceData.sorted { $0.assetSize < $1.assetSize } self.resourceData = self.resourceData.sorted { $0.assetSize < $1.assetSize }
break break
case 2: case .latest:
self.resourceData = self.resourceData.sorted { $0.createDate > $1.createDate } self.resourceData = self.resourceData.sorted { $0.createDate > $1.createDate }
break break
case 3: case .oldest:
self.resourceData = self.resourceData.sorted { $0.createDate < $1.createDate } self.resourceData = self.resourceData.sorted { $0.createDate < $1.createDate }
break break
default:
break
} }
} }
......
...@@ -23,6 +23,7 @@ class PhotoDetailViewController : BaseViewController { ...@@ -23,6 +23,7 @@ class PhotoDetailViewController : BaseViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.view.backgroundColor = UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1)
self.view.addSubview(self.closeButton) self.view.addSubview(self.closeButton)
self.closeButton.snp.makeConstraints { make in self.closeButton.snp.makeConstraints { make in
......
...@@ -77,6 +77,9 @@ class PhotoRemoveViewController: BaseViewController { ...@@ -77,6 +77,9 @@ class PhotoRemoveViewController: BaseViewController {
// MARK: - 生命周期 // MARK: - 生命周期
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.view.backgroundColor = UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1)
formatter.dateStyle = .medium formatter.dateStyle = .medium
formatter.timeStyle = .none formatter.timeStyle = .none
if let type = self.mediaType { if let type = self.mediaType {
...@@ -295,7 +298,8 @@ class PhotoRemoveViewController: BaseViewController { ...@@ -295,7 +298,8 @@ class PhotoRemoveViewController: BaseViewController {
photoView.mediaType = self.mediaType photoView.mediaType = self.mediaType
photoView.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(handlePan))) photoView.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(handlePan)))
view.addSubview(photoView) view.addSubview(photoView)
photoView.frame = CGRectMake(15, statusBarHeight + 44, self.view.width - 30, self.view.height - 78 - safeHeight - statusBarHeight - 44) photoView.frame = CGRectMake(0, 0, self.view.width - 30, 509 * RScreenH())
photoView.center = self.view.center
photoViews.append(photoView) photoViews.append(photoView)
} }
...@@ -467,7 +471,8 @@ class PhotoRemoveViewController: BaseViewController { ...@@ -467,7 +471,8 @@ class PhotoRemoveViewController: BaseViewController {
private func resetViewPosition(_ view: PhotosRemoveBaseView) { private func resetViewPosition(_ view: PhotosRemoveBaseView) {
UIView.animate(withDuration: 0.3) { UIView.animate(withDuration: 0.3) {
view.transform = .identity view.transform = .identity
view.frame = CGRectMake(15, statusBarHeight + 44, self.view.width - 30, self.view.height - 78 - safeHeight - statusBarHeight - 44) view.frame = CGRectMake(0, 0, self.view.width - 30, 509 * RScreenH())
view.center = self.view.center
view.hideButtons() view.hideButtons()
} }
} }
...@@ -484,7 +489,8 @@ class PhotoRemoveViewController: BaseViewController { ...@@ -484,7 +489,8 @@ class PhotoRemoveViewController: BaseViewController {
// 创建新视图并更新内容 // 创建新视图并更新内容
let newView = PhotosRemoveBaseView() let newView = PhotosRemoveBaseView()
newView.frame = CGRectMake(15, statusBarHeight + 44, self.view.width - 30, self.view.height - 78 - safeHeight - statusBarHeight - 44) newView.frame = CGRectMake(0, 0, self.view.width - 30, 509 * RScreenH())
newView.center = self.view.center
newView.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(handlePan))) newView.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(handlePan)))
newView.alpha = 0 newView.alpha = 0
view.addSubview(newView) view.addSubview(newView)
......
...@@ -21,6 +21,8 @@ class HomeInfoView :UIView { ...@@ -21,6 +21,8 @@ class HomeInfoView :UIView {
var callBack:callBack<Any> = {text in} var callBack:callBack<Any> = {text in}
var keepAllNoDataCallBack : ()->Void = {}
var deleteCallBack:callBack<[AssetModel]> = {array in } var deleteCallBack:callBack<[AssetModel]> = {array in }
var titleShowHideCallBack:callBack<Bool> = {isShow in} var titleShowHideCallBack:callBack<Bool> = {isShow in}
...@@ -311,6 +313,7 @@ class HomeInfoView :UIView { ...@@ -311,6 +313,7 @@ class HomeInfoView :UIView {
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() self.nextRowButton.isHidden = !self.isShowNextRowButton()
} }
} }
...@@ -322,34 +325,6 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate { ...@@ -322,34 +325,6 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
self.tableScrollToNextRow() self.tableScrollToNextRow()
} }
// 重新设置models
func resetModels(){
var newArray : [HomeInfoTableItem] = []
for array in ids ?? [] {
var smodels:[ImageSeletedCollectionItem] = []
for id in array {
let smodel = ImageSeletedCollectionItem()
smodel.id = id
smodel.isSeleted = false
smodels.append(smodel)
}
let smodel = HomeInfoTableItem()
smodel.type = type
smodel.smodels = smodels
smodel.titleText = titleText
newArray.append(smodel)
}
self.models = newArray
}
/// 让表格自动滚动一行 /// 让表格自动滚动一行
private func tableScrollToNextRow() { private func tableScrollToNextRow() {
...@@ -413,10 +388,25 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate { ...@@ -413,10 +388,25 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: HomeInfoTableViewCell.identifier, for: indexPath) as! HomeInfoTableViewCell let cell = tableView.dequeueReusableCell(withIdentifier: HomeInfoTableViewCell.identifier, for: indexPath) as! HomeInfoTableViewCell
cell.saveKeepListFinishedCallback = { cell.saveKeepListFinishedCallback = {[weak self] index in
self.ids?.remove(at: indexPath.section) guard let self else {return}
self.resetModels() self.ids?.remove(at: index.section)
tableView.deleteRows(at: [indexPath], with: .automatic) self.models.remove(at: index.section)
DispatchQueue.main.async {
self.setTitleView()
}
// 禁用动画
UIView.performWithoutAnimation {
tableView.beginUpdates()
tableView.deleteRows(at: [index], with: .fade)
tableView.endUpdates()
}
if let data = self.ids {
if data.count <= 0 {
self.keepAllNoDataCallBack()
}
}
} }
cell.type = self.type cell.type = self.type
...@@ -458,10 +448,10 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate { ...@@ -458,10 +448,10 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
for item in orgModels { for item in orgModels {
var array = item var array = item
if startDate != nil { if startDate != nil {
array = array.filter({$0.createDate > startDate!}) array = array.filter({$0.createDate >= startDate!})
} }
if endDate != nil { if endDate != nil {
array = array.filter({$0.createDate < endDate!}) array = array.filter({$0.createDate <= endDate!})
} }
if array.count >= 2 { if array.count >= 2 {
......
...@@ -9,7 +9,7 @@ import Foundation ...@@ -9,7 +9,7 @@ import Foundation
class HomePhotosDetailCustomHeaderView : UICollectionReusableView { class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
var sortCallback : ()->Void = {} var sortViewSubmitCallBack : (ResourceFilterBoxModel)->Void = {model in}
lazy var modelTitlelabel :UILabel = { lazy var modelTitlelabel :UILabel = {
let label = UILabel() let label = UILabel()
...@@ -20,33 +20,22 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView { ...@@ -20,33 +20,22 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
return label return label
}() }()
lazy var btnView :UIView = { // 筛选按钮
let view = UIView() lazy var filterButton : UIButton = {
view.backgroundColor = UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1) let button = UIButton(type: .custom)
view.layer.cornerRadius = 16 button.setImage(UIImage(named: "Frame 1"), for: .normal)
view.clipsToBounds = true button.setTitle("The largest", for: .normal)
button.layer.cornerRadius = 14
let tap = UITapGestureRecognizer() button.clipsToBounds = true
tap.addTarget(self, action: #selector(sortAction)) button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000)
view.isUserInteractionEnabled = true button.titleLabel?.font = UIFont.systemFont(ofSize: 12, weight: .semibold)
view.addGestureRecognizer(tap) button.setTitleColor(UIColor(red: 0.07, green: 0.07, blue: 0.07, alpha: 1), for: .normal)
button.addTarget(self, action: #selector(filterButtonAction), for: .touchUpInside)
return view button.isHidden = false
return button
}() }()
lazy var selectImageView :UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "ic_newest_similar")
return view
}()
lazy var selectlabel :UILabel = {
let label = UILabel()
label.text = "Largest"
label.textAlignment = .center
label.textColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1)
label.font = UIFont.systemFont(ofSize: 14, weight: .bold)
return label
}()
lazy var countLabel :UILabel = { lazy var countLabel :UILabel = {
let label = UILabel() let label = UILabel()
label.text = "0 Photos" label.text = "0 Photos"
...@@ -59,13 +48,8 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView { ...@@ -59,13 +48,8 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
private func setUI(){ private func setUI(){
self.addSubview(self.modelTitlelabel) self.addSubview(self.modelTitlelabel)
self.addSubview(self.btnView)
self.addSubview(self.countLabel) self.addSubview(self.countLabel)
self.addSubview(self.filterButton)
self.btnView.addSubview(self.selectImageView)
self.btnView.addSubview(self.selectlabel)
self.modelTitlelabel.snp.makeConstraints { make in self.modelTitlelabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(0) make.left.equalToSuperview().offset(0)
...@@ -73,29 +57,17 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView { ...@@ -73,29 +57,17 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
make.width.equalTo(150 * RScreenW()) make.width.equalTo(150 * RScreenW())
make.height.equalTo(28) make.height.equalTo(28)
} }
self.filterButton.snp.makeConstraints { make in
self.btnView.snp.makeConstraints { make in make.centerY.equalTo(self.modelTitlelabel.snp.centerY)
make.right.equalToSuperview().offset(0) make.right.equalToSuperview().offset(0)
make.top.equalToSuperview().offset(12) make.height.equalTo(28)
make.width.equalTo(103 * RScreenW()) make.width.equalTo(98)
make.height.equalTo(32)
}
self.selectImageView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(12)
make.centerY.equalToSuperview()
make.width.height.equalTo(20)
}
self.selectlabel.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-12)
make.top.equalToSuperview().offset(6)
make.width.equalTo(60 * RScreenW())
make.height.equalTo(20)
} }
self.countLabel.snp.makeConstraints { make in self.countLabel.snp.makeConstraints { make in
make.left.equalTo(0) make.left.equalTo(0)
make.right.equalTo(0) make.right.equalTo(0)
make.top.equalTo(self.btnView.snp.bottom).offset(8) make.top.equalTo(self.filterButton.snp.bottom).offset(8)
make.height.equalTo(20) make.height.equalTo(20)
} }
} }
...@@ -112,7 +84,19 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView { ...@@ -112,7 +84,19 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
setUI() setUI()
} }
@objc func sortAction(){ @objc func filterButtonAction(){
sortCallback() if let cWindow = cWindow {
let filterView : ResourceFilterBoxView = ResourceFilterBoxView.init(frame: cWindow.bounds)
// 添加毛玻璃效果
cWindow.showBlur()
cWindow.addSubview(filterView)
filterView.submitCallBack = {model in
DispatchQueue.main.async {
self.filterButton.setTitle(model.sortType.rawValue, for: .normal)
}
self.sortViewSubmitCallBack(model)
}
}
} }
} }
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
import Foundation import Foundation
class HomeVideoDetailCustomHeaderView : UICollectionReusableView { class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
var sortCallback : ()->Void = {} var sortViewSubmitCallBack : (ResourceFilterBoxModel)->Void = {model in}
lazy var modelTitlelabel :UILabel = { lazy var modelTitlelabel :UILabel = {
let label = UILabel() let label = UILabel()
...@@ -18,34 +18,19 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView { ...@@ -18,34 +18,19 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
label.font = UIFont.systemFont(ofSize: 20, weight: .bold) label.font = UIFont.systemFont(ofSize: 20, weight: .bold)
return label return label
}() }()
// 筛选按钮
lazy var btnView :UIView = { lazy var filterButton : UIButton = {
let view = UIView() let button = UIButton(type: .custom)
view.backgroundColor = UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1) button.setImage(UIImage(named: "Frame 1"), for: .normal)
view.layer.cornerRadius = 16 button.setTitle("The largest", for: .normal)
view.clipsToBounds = true button.layer.cornerRadius = 14
button.clipsToBounds = true
button.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 0.1000)
let tap = UITapGestureRecognizer() button.titleLabel?.font = UIFont.systemFont(ofSize: 12, weight: .semibold)
tap.addTarget(self, action: #selector(sortAction)) button.setTitleColor(UIColor(red: 0.07, green: 0.07, blue: 0.07, alpha: 1), for: .normal)
view.isUserInteractionEnabled = true button.addTarget(self, action: #selector(filterButtonAction), for: .touchUpInside)
view.addGestureRecognizer(tap) button.isHidden = false
return button
return view
}()
lazy var selectImageView :UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "ic_newest_similar")
return view
}()
lazy var selectlabel :UILabel = {
let label = UILabel()
label.text = "Largest"
label.textAlignment = .center
label.textColor = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1)
label.font = UIFont.systemFont(ofSize: 14, weight: .bold)
return label
}() }()
lazy var sizeLabel :UILabel = { lazy var sizeLabel :UILabel = {
let label = UILabel() let label = UILabel()
...@@ -56,71 +41,13 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView { ...@@ -56,71 +41,13 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
return label return label
}() }()
// lazy var tipBackView :UIView = {
// let view = UIView()
// view.backgroundColor = UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1)
// view.layer.cornerRadius = 8
// view.clipsToBounds = true
// return view
// }()
// lazy var tipImageView :UIImageView = {
// let view = UIImageView()
// view.image = UIImage(named: "ic_cmpress_home_nor")
// return view
// }()
//
// lazy var tipLabel :UILabel = {
// let label = UILabel()
// label.text = "Video Compress"
// label.textAlignment = .left
// label.numberOfLines = 0
// label.font = UIFont.systemFont(ofSize: 16, weight: .bold)
// return label
// }()
//
// lazy var tipDetailLabel :UILabel = {
// let label = UILabel()
// label.text = "Tap to start the process"
// label.textAlignment = .left
// label.numberOfLines = 0
// label.textColor = UIColor(red: 0.7, green: 0.7, blue: 0.7, alpha: 1)
// label.font = UIFont.systemFont(ofSize: 12, weight: .regular)
// return label
// }()
//
// lazy var saveSizeLabel :UILabel = {
// let label = UILabel()
// label.text = "13.5M"
// label.textAlignment = .right
// label.textColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 1)
// label.font = UIFont.systemFont(ofSize: 16, weight: .bold)
// return label
// }()
//
// lazy var moreImageView :UIImageView = {
// let view = UIImageView()
// view.image = UIImage(named: "icon_left_setting_grey")
// return view
// }()
private func setUI(){ private func setUI(){
self.addSubview(self.modelTitlelabel) self.addSubview(self.modelTitlelabel)
self.addSubview(self.btnView) self.addSubview(self.filterButton)
self.addSubview(self.sizeLabel) self.addSubview(self.sizeLabel)
self.btnView.addSubview(self.selectImageView)
self.btnView.addSubview(self.selectlabel)
// self.addSubview(self.tipBackView)
// self.tipBackView.addSubview(self.tipImageView)
// self.tipBackView.addSubview(self.tipLabel)
// self.tipBackView.addSubview(self.tipDetailLabel)
// self.tipBackView.addSubview(self.saveSizeLabel)
// self.tipBackView.addSubview(self.moreImageView)
self.modelTitlelabel.snp.makeConstraints { make in self.modelTitlelabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(0) make.left.equalToSuperview().offset(0)
...@@ -129,31 +56,23 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView { ...@@ -129,31 +56,23 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
make.height.equalTo(28) make.height.equalTo(28)
} }
self.btnView.snp.makeConstraints { make in
make.right.equalToSuperview().offset(0)
make.top.equalToSuperview().offset(12)
make.width.equalTo(103 * RScreenW())
make.height.equalTo(32)
}
self.selectImageView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(12)
make.centerY.equalToSuperview()
make.width.height.equalTo(20)
}
self.selectlabel.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-12)
make.top.equalToSuperview().offset(6)
make.width.equalTo(60 * RScreenW())
make.height.equalTo(20)
}
self.sizeLabel.snp.makeConstraints { make in self.sizeLabel.snp.makeConstraints { make in
make.left.equalTo(0) make.left.equalTo(0)
make.right.equalTo(0) make.right.equalTo(0)
make.top.equalTo(self.btnView.snp.bottom).offset(8) make.top.equalTo(self.filterButton.snp.bottom).offset(8)
make.height.equalTo(20) make.height.equalTo(20)
} }
self.filterButton.snp.makeConstraints { make in
make.centerY.equalTo(self.modelTitlelabel.snp.centerY)
make.right.equalToSuperview().offset(0)
make.height.equalTo(28)
make.width.equalTo(98)
}
addSubview(compressionTipView) addSubview(compressionTipView)
compressionTipView.snp.makeConstraints { make in compressionTipView.snp.makeConstraints { make in
...@@ -164,47 +83,6 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView { ...@@ -164,47 +83,6 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
let tap = UITapGestureRecognizer(target: self, action: #selector(compressClick)) let tap = UITapGestureRecognizer(target: self, action: #selector(compressClick))
compressionTipView.addGestureRecognizer(tap) compressionTipView.addGestureRecognizer(tap)
// self.tipBackView.snp.makeConstraints { make in
// make.left.equalTo(0)
// make.right.equalTo(0)
// make.top.equalTo(self.sizeLabel.snp.bottom).offset(12)
// make.height.equalTo(70)
// }
//
// self.tipImageView.snp.makeConstraints { make in
// make.left.equalToSuperview().offset(15)
// make.centerY.equalToSuperview()
// make.width.height.equalTo(30)
//
// }
// self.tipLabel.snp.makeConstraints { make in
// make.left.equalTo(self.tipImageView.snp.right).offset(10)
// make.width.equalTo(150 * RScreenW())
// make.height.equalTo(22)
// make.top.equalToSuperview().offset(15)
// }
// self.tipDetailLabel.snp.makeConstraints { make in
// make.left.equalTo(self.tipImageView.snp.right).offset(10)
// make.width.equalTo(150 * RScreenW())
// make.height.equalTo(18)
// make.top.equalTo(self.tipLabel.snp.bottom).offset(0)
// }
//
// self.moreImageView.snp.makeConstraints { make in
// make.height.width.equalTo(20)
// make.right.equalToSuperview().offset(-15)
// make.centerY.equalToSuperview()
// }
//
// self.saveSizeLabel.snp.makeConstraints { make in
// make.centerY.equalToSuperview()
// make.right.equalTo(self.moreImageView.snp.left).offset(-10)
// make.height.equalTo(28)
// make.width.equalTo(100)
// }
} }
override init(frame: CGRect) { override init(frame: CGRect) {
...@@ -219,8 +97,20 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView { ...@@ -219,8 +97,20 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
setUI() setUI()
} }
@objc func sortAction(){ @objc func filterButtonAction(){
sortCallback() if let cWindow = cWindow {
let filterView : ResourceFilterBoxView = ResourceFilterBoxView.init(frame: cWindow.bounds)
// 添加毛玻璃效果
cWindow.showBlur()
cWindow.addSubview(filterView)
filterView.submitCallBack = {model in
DispatchQueue.main.async {
self.filterButton.setTitle(model.sortType.rawValue, for: .normal)
}
self.sortViewSubmitCallBack(model)
}
}
} }
lazy var compressionTipView:VideocompressionHeadView = { lazy var compressionTipView:VideocompressionHeadView = {
......
...@@ -118,10 +118,15 @@ class ResourceFilterBoxView : UIView { ...@@ -118,10 +118,15 @@ class ResourceFilterBoxView : UIView {
setUpUI() setUpUI()
} }
func getMonthEn(month: Int )-> String{ func getMonthEn(month: Int) -> String {
// 检查输入是否在有效范围内(1-12)
guard (1...12).contains(month) else {
return "Invalid Month" // 或抛出错误
}
let formatter = DateFormatter() let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US") formatter.locale = Locale(identifier: "en_US")
return formatter.monthSymbols[month] return formatter.monthSymbols[month - 1]
} }
override func removeFromSuperview() { override func removeFromSuperview() {
...@@ -240,6 +245,7 @@ class ResourceFilterBoxView : UIView { ...@@ -240,6 +245,7 @@ class ResourceFilterBoxView : UIView {
components.year = year components.year = year
components.month = month components.month = month
components.day = 1 // 设置为当月第一天 components.day = 1 // 设置为当月第一天
components.timeZone = TimeZone(identifier: "UTC")
// 使用公历日历 // 使用公历日历
let calendar = Calendar(identifier: .gregorian) let calendar = Calendar(identifier: .gregorian)
...@@ -260,6 +266,7 @@ class ResourceFilterBoxView : UIView { ...@@ -260,6 +266,7 @@ class ResourceFilterBoxView : UIView {
components.year = nextYear components.year = nextYear
components.month = nextMonth components.month = nextMonth
components.day = 1 components.day = 1
components.timeZone = TimeZone(identifier: "UTC")
let calendar = Calendar(identifier: .gregorian) let calendar = Calendar(identifier: .gregorian)
guard let nextMonthFirstDay = calendar.date(from: components) else { guard let nextMonthFirstDay = calendar.date(from: components) else {
...@@ -318,7 +325,6 @@ class ResourceFilterBoxView : UIView { ...@@ -318,7 +325,6 @@ class ResourceFilterBoxView : UIView {
self.startDateButton.dateButton.setTitle("From \(self.getMonthEn(month: month)) \(year)", for: .normal) self.startDateButton.dateButton.setTitle("From \(self.getMonthEn(month: month)) \(year)", for: .normal)
self.startDateButton.closeButton.isHidden = false self.startDateButton.closeButton.isHidden = false
self.startDate = self.dateFrom(year: year, month: month) self.startDate = self.dateFrom(year: year, month: month)
}else { }else {
self.endDateButton.dateButton.setTitle("To \(self.getMonthEn(month: month)) \(year)", for: .normal) self.endDateButton.dateButton.setTitle("To \(self.getMonthEn(month: month)) \(year)", for: .normal)
self.endDateButton.closeButton.isHidden = false self.endDateButton.closeButton.isHidden = false
......
...@@ -161,4 +161,13 @@ extension YearMonthPickerView: UIPickerViewDataSource, UIPickerViewDelegate { ...@@ -161,4 +161,13 @@ extension YearMonthPickerView: UIPickerViewDataSource, UIPickerViewDelegate {
return component == 0 ? self.width/2 : self.width/2 return component == 0 ? self.width/2 : self.width/2
} }
private var currentYear: Int {
return Calendar.current.component(.year, from: Date())
}
private var currentMonth: Int {
return Calendar.current.component(.month, from: Date())
}
} }
...@@ -24,7 +24,7 @@ class HomeInfoTableViewCell:UITableViewCell { ...@@ -24,7 +24,7 @@ class HomeInfoTableViewCell:UITableViewCell {
var callBack:callBack<Any> = {text in} var callBack:callBack<Any> = {text in}
var saveKeepListFinishedCallback : ()->Void = {} var saveKeepListFinishedCallback : (IndexPath)->Void = {index in}
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
...@@ -119,7 +119,6 @@ class HomeInfoTableViewCell:UITableViewCell { ...@@ -119,7 +119,6 @@ class HomeInfoTableViewCell:UITableViewCell {
UIView.transition(with: collectionView!, duration: 0.3, options: .transitionCrossDissolve, animations: { UIView.transition(with: collectionView!, duration: 0.3, options: .transitionCrossDissolve, animations: {
self.collectionView?.reloadData() self.collectionView?.reloadData()
// self.reloadCollectionView()
}, completion: nil) }, completion: nil)
} }
} }
...@@ -224,7 +223,7 @@ extension HomeInfoTableViewCell:UICollectionViewDelegate,UICollectionViewDataSou ...@@ -224,7 +223,7 @@ extension HomeInfoTableViewCell:UICollectionViewDelegate,UICollectionViewDataSou
cell.keepAllCallBack = { cell.keepAllCallBack = {
//存到保留列表 //存到保留列表
saveAllDataToKeepList() saveAllDataToKeepList()
self.saveKeepListFinishedCallback() self.saveKeepListFinishedCallback(indexPath)
} }
// 存全部数据到保留列表 // 存全部数据到保留列表
func saveAllDataToKeepList(){ func saveAllDataToKeepList(){
......
...@@ -21,7 +21,8 @@ class PMLoadingHUD{ ...@@ -21,7 +21,8 @@ class PMLoadingHUD{
func show(_ title:String = "Deleting...",_ subTitle:String = "Please wait on the screen. This might take several minutes."){ func show(_ title:String = "Deleting...",_ subTitle:String = "Please wait on the screen. This might take several minutes."){
disMiss() disMiss()
DispatchQueue.main.async { DispatchQueue.main.async {
KEYWINDOW()?.addSubview(self.loadingView) cWindow?.addSubview(self.loadingView)
cWindow?.bringSubviewToFront(self.loadingView)
self.loadingView.setTitleaAndSubTitle(title: title, subTitle: subTitle) self.loadingView.setTitleaAndSubTitle(title: title, subTitle: subTitle)
self.loadingView.animationView.play() self.loadingView.animationView.play()
} }
......
...@@ -51,6 +51,8 @@ class PMShowImgVideoController: BaseViewController { ...@@ -51,6 +51,8 @@ class PMShowImgVideoController: BaseViewController {
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
self.view.backgroundColor = UIColor(red: 0.95, green: 0.96, blue: 0.99, alpha: 1)
} }
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
......
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