Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
P
PhoneManager
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yang
PhoneManager
Commits
b2337b07
Commit
b2337b07
authored
May 20, 2025
by
CZ1004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【优化】选择框时间选择记住时间
parent
00999a0c
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
222 additions
and
77 deletions
+222
-77
CompressCompletedViewController.swift
...Compress/Controller/CompressCompletedViewController.swift
+0
-2
CompressController.swift
...r/Class/Page/Compress/Controller/CompressController.swift
+31
-18
CompressCustomHeaderView.swift
...r/Class/Page/Compress/View/CompressCustomHeaderView.swift
+6
-1
PhotoRemoveViewController.swift
...lass/Page/Home/Controller/PhotoRemoveViewController.swift
+3
-3
DateSelectButtonView.swift
PhoneManager/Class/Page/Home/View/DateSelectButtonView.swift
+3
-0
HomeInfoView.swift
PhoneManager/Class/Page/Home/View/HomeInfoView.swift
+4
-1
HomePhotosDetailCustomHeaderView.swift
...ass/Page/Home/View/HomePhotosDetailCustomHeaderView.swift
+4
-1
HomeVideoDetailCustomHeaderView.swift
...lass/Page/Home/View/HomeVideoDetailCustomHeaderView.swift
+4
-1
HomePhotosModel .swift
...Manager/Class/Page/Home/View/Model/HomePhotosModel .swift
+0
-4
PhotoVideoDetailNavView.swift
...anager/Class/Page/Home/View/PhotoVideoDetailNavView.swift
+8
-3
ResourceFilterBoxView.swift
...eManager/Class/Page/Home/View/ResourceFilterBoxView.swift
+92
-33
PMLoadingView.swift
PhoneManager/Class/Page/Public/Loading/PMLoadingView.swift
+11
-0
PMShowImgVideoController.swift
...eManager/Class/Page/Secret/PMShowImgVideoController.swift
+56
-8
Singleton.swift
PhoneManager/Class/Tool/Singleton/Singleton.swift
+0
-2
No files found.
PhoneManager/Class/Page/Compress/Controller/CompressCompletedViewController.swift
View file @
b2337b07
...
@@ -370,8 +370,6 @@ class CompressCompletedViewController : BaseViewController{
...
@@ -370,8 +370,6 @@ class CompressCompletedViewController : BaseViewController{
// 移除VC中的数据
// 移除VC中的数据
let
compressVC
=
self
.
navigationController
?
.
viewControllers
.
first
(
where
:
{
$0
is
CompressController
})
as!
CompressController
as
CompressController
let
compressVC
=
self
.
navigationController
?
.
viewControllers
.
first
(
where
:
{
$0
is
CompressController
})
as!
CompressController
as
CompressController
compressVC
.
resourceData
.
removeAll
{
$0
.
localIdentifier
==
flag
}
compressVC
.
resourceData
.
removeAll
{
$0
.
localIdentifier
==
flag
}
// 移除单利中的数据
Singleton
.
shared
.
resourceModel
.
removeAll
{
$0
.
localIdentifier
==
flag
}
}
}
}
}
...
...
PhoneManager/Class/Page/Compress/Controller/CompressController.swift
View file @
b2337b07
...
@@ -117,20 +117,12 @@ class CompressController : BaseViewController {
...
@@ -117,20 +117,12 @@ class CompressController : BaseViewController {
}
}
self
.
resourceData
.
removeAll
()
self
.
resourceData
.
removeAll
()
let
datas
=
Singleton
.
shared
.
resourceModel
PMLoadingHUD
.
share
.
showLoding
()
if
datas
.
count
>
0
{
CompressViewModel
()
.
getAllPhotosToAssets
(
sortType
:
self
.
currentSort
,
assetType
:
self
.
currentResourceType
)
{
[
weak
self
]
models
in
// 这里需要重新排序下
guard
let
self
else
{
return
}
self
.
resourceData
=
datas
self
.
resourceData
=
models
self
.
sortByType
(
sortType
:
self
.
currentSort
)
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
0.5
)
{
}
else
{
PMLoadingHUD
.
share
.
disMiss
()
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
guard
let
self
else
{
return
}
self
.
resourceData
=
models
Singleton
.
shared
.
resourceModel
=
self
.
resourceData
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
0.5
)
{
PMLoadingHUD
.
share
.
disMiss
()
}
}
}
}
}
}
}
...
@@ -231,10 +223,20 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
...
@@ -231,10 +223,20 @@ 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
.
sortViewSubmitCallBack
=
{
[
weak
self
]
fil
e
terModel
in
header
.
sortViewSubmitCallBack
=
{
[
weak
self
]
filterModel
in
guard
let
self
else
{
return
}
guard
let
self
else
{
return
}
self
.
currentSort
=
fileterModel
.
sortType
// 重新获取数据,过滤数据
self
.
sortByType
(
sortType
:
self
.
currentSort
)
self
.
currentSort
=
filterModel
.
sortType
PMLoadingHUD
.
share
.
showLoding
()
CompressViewModel
()
.
getAllPhotosToAssets
(
sortType
:
self
.
currentSort
,
assetType
:
self
.
currentResourceType
)
{
[
weak
self
]
models
in
guard
let
self
else
{
return
}
// 过滤数据
let
tempData
=
self
.
filterDataByDate
(
orgModels
:
models
,
startDate
:
filterModel
.
startDate
,
endDate
:
filterModel
.
endDate
)
self
.
resourceData
=
tempData
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
0.5
)
{
PMLoadingHUD
.
share
.
disMiss
()
}
}
}
}
header
.
changeView
.
callBack
=
{[
weak
self
]
flag
in
header
.
changeView
.
callBack
=
{[
weak
self
]
flag
in
guard
let
self
else
{
return
}
guard
let
self
else
{
return
}
...
@@ -247,7 +249,7 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
...
@@ -247,7 +249,7 @@ 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."
)
PMLoadingHUD
.
share
.
show
Loding
(
)
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
...
@@ -271,6 +273,17 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
...
@@ -271,6 +273,17 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
}
}
}
}
private
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
sortByType
(
sortType
:
ResouceSortType
){
func
sortByType
(
sortType
:
ResouceSortType
){
switch
sortType
{
switch
sortType
{
case
.
largest
:
case
.
largest
:
...
...
PhoneManager/Class/Page/Compress/View/CompressCustomHeaderView.swift
View file @
b2337b07
...
@@ -9,6 +9,8 @@ import Foundation
...
@@ -9,6 +9,8 @@ import Foundation
class
CompressCustomHeaderView
:
UICollectionReusableView
{
class
CompressCustomHeaderView
:
UICollectionReusableView
{
var
filterBoxModel
:
ResourceFilterBoxModel
?
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
var
modeData
=
[
AssetModel
]()
{
var
modeData
=
[
AssetModel
]()
{
...
@@ -169,12 +171,15 @@ class CompressCustomHeaderView: UICollectionReusableView{
...
@@ -169,12 +171,15 @@ class CompressCustomHeaderView: UICollectionReusableView{
@objc
func
filterButtonAction
(){
@objc
func
filterButtonAction
(){
if
let
cWindow
=
cWindow
{
if
let
cWindow
=
cWindow
{
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
)
// 这里将原来的数据传递过去
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
,
startDate
:
self
.
filterBoxModel
?
.
startDate
,
endDate
:
self
.
filterBoxModel
?
.
endDate
,
sortType
:
self
.
filterBoxModel
?
.
sortType
)
// 添加毛玻璃效果
// 添加毛玻璃效果
cWindow
.
showBlur
()
cWindow
.
showBlur
()
cWindow
.
addSubview
(
filterView
)
cWindow
.
addSubview
(
filterView
)
filterView
.
submitCallBack
=
{
model
in
filterView
.
submitCallBack
=
{
model
in
self
.
filterBoxModel
=
model
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
self
.
filterButton
.
setTitle
(
model
.
sortType
.
rawValue
,
for
:
.
normal
)
self
.
filterButton
.
setTitle
(
model
.
sortType
.
rawValue
,
for
:
.
normal
)
}
}
...
...
PhoneManager/Class/Page/Home/Controller/PhotoRemoveViewController.swift
View file @
b2337b07
...
@@ -26,8 +26,8 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -26,8 +26,8 @@ class PhotoRemoveViewController: BaseViewController {
let
formatter
=
DateFormatter
()
let
formatter
=
DateFormatter
()
lazy
var
navView
:
Photo
Remove
NavView
=
{
lazy
var
navView
:
Photo
VideoDetail
NavView
=
{
let
view
=
Photo
Remove
NavView
()
let
view
=
Photo
VideoDetail
NavView
()
return
view
return
view
}()
}()
...
@@ -83,7 +83,7 @@ class PhotoRemoveViewController: BaseViewController {
...
@@ -83,7 +83,7 @@ class PhotoRemoveViewController: BaseViewController {
formatter
.
dateStyle
=
.
medium
formatter
.
dateStyle
=
.
medium
formatter
.
timeStyle
=
.
none
formatter
.
timeStyle
=
.
none
if
let
type
=
self
.
mediaType
{
if
let
type
=
self
.
mediaType
{
self
.
navView
.
mediaType
=
type
self
.
navView
.
showType
=
type
==
.
video
?
.
dateAndSizeNav
:
.
dateTimeNav
}
}
self
.
view
.
addSubview
(
self
.
navView
)
self
.
view
.
addSubview
(
self
.
navView
)
self
.
navView
.
snp
.
makeConstraints
{
make
in
self
.
navView
.
snp
.
makeConstraints
{
make
in
...
...
PhoneManager/Class/Page/Home/View/DateSelectButtonView.swift
View file @
b2337b07
...
@@ -9,6 +9,8 @@ import Foundation
...
@@ -9,6 +9,8 @@ import Foundation
class
DateSelectButtonView
:
UIView
{
class
DateSelectButtonView
:
UIView
{
var
closeCallBack
:
()
->
Void
=
{}
var
type
:
PikerDateType
?
var
type
:
PikerDateType
?
lazy
var
dateButton
:
UIButton
=
{
lazy
var
dateButton
:
UIButton
=
{
...
@@ -54,6 +56,7 @@ class DateSelectButtonView : UIView {
...
@@ -54,6 +56,7 @@ class DateSelectButtonView : UIView {
@objc
func
closeButtonAction
(){
@objc
func
closeButtonAction
(){
reSetButtonTitle
()
reSetButtonTitle
()
self
.
closeCallBack
()
}
}
func
reSetButtonTitle
()
{
func
reSetButtonTitle
()
{
...
...
PhoneManager/Class/Page/Home/View/HomeInfoView.swift
View file @
b2337b07
...
@@ -497,6 +497,8 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
...
@@ -497,6 +497,8 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
class
HomeInfoTitleView
:
UIView
{
class
HomeInfoTitleView
:
UIView
{
var
filterBoxModel
:
ResourceFilterBoxModel
?
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
var
type
:
PhotsFileType
?
var
type
:
PhotsFileType
?
...
@@ -610,12 +612,13 @@ class HomeInfoTitleView:UIView {
...
@@ -610,12 +612,13 @@ class HomeInfoTitleView:UIView {
@objc
func
filterButtonAction
(){
@objc
func
filterButtonAction
(){
if
let
cWindow
=
cWindow
{
if
let
cWindow
=
cWindow
{
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
)
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
,
startDate
:
self
.
filterBoxModel
?
.
startDate
,
endDate
:
self
.
filterBoxModel
?
.
endDate
,
sortType
:
self
.
filterBoxModel
?
.
sortType
)
// 添加毛玻璃效果
// 添加毛玻璃效果
cWindow
.
showBlur
()
cWindow
.
showBlur
()
cWindow
.
addSubview
(
filterView
)
cWindow
.
addSubview
(
filterView
)
filterView
.
submitCallBack
=
{
model
in
filterView
.
submitCallBack
=
{
model
in
self
.
filterBoxModel
=
model
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
self
.
filterButton
.
setTitle
(
model
.
sortType
.
rawValue
,
for
:
.
normal
)
self
.
filterButton
.
setTitle
(
model
.
sortType
.
rawValue
,
for
:
.
normal
)
}
}
...
...
PhoneManager/Class/Page/Home/View/HomePhotosDetailCustomHeaderView.swift
View file @
b2337b07
...
@@ -9,6 +9,8 @@ import Foundation
...
@@ -9,6 +9,8 @@ import Foundation
class
HomePhotosDetailCustomHeaderView
:
UICollectionReusableView
{
class
HomePhotosDetailCustomHeaderView
:
UICollectionReusableView
{
var
filterBoxModel
:
ResourceFilterBoxModel
?
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
lazy
var
modelTitlelabel
:
UILabel
=
{
lazy
var
modelTitlelabel
:
UILabel
=
{
...
@@ -86,12 +88,13 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
...
@@ -86,12 +88,13 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
@objc
func
filterButtonAction
(){
@objc
func
filterButtonAction
(){
if
let
cWindow
=
cWindow
{
if
let
cWindow
=
cWindow
{
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
)
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
,
startDate
:
self
.
filterBoxModel
?
.
startDate
,
endDate
:
self
.
filterBoxModel
?
.
endDate
,
sortType
:
self
.
filterBoxModel
?
.
sortType
)
// 添加毛玻璃效果
// 添加毛玻璃效果
cWindow
.
showBlur
()
cWindow
.
showBlur
()
cWindow
.
addSubview
(
filterView
)
cWindow
.
addSubview
(
filterView
)
filterView
.
submitCallBack
=
{
model
in
filterView
.
submitCallBack
=
{
model
in
self
.
filterBoxModel
=
model
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
self
.
filterButton
.
setTitle
(
model
.
sortType
.
rawValue
,
for
:
.
normal
)
self
.
filterButton
.
setTitle
(
model
.
sortType
.
rawValue
,
for
:
.
normal
)
}
}
...
...
PhoneManager/Class/Page/Home/View/HomeVideoDetailCustomHeaderView.swift
View file @
b2337b07
...
@@ -8,6 +8,8 @@
...
@@ -8,6 +8,8 @@
import
Foundation
import
Foundation
class
HomeVideoDetailCustomHeaderView
:
UICollectionReusableView
{
class
HomeVideoDetailCustomHeaderView
:
UICollectionReusableView
{
var
filterBoxModel
:
ResourceFilterBoxModel
?
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
lazy
var
modelTitlelabel
:
UILabel
=
{
lazy
var
modelTitlelabel
:
UILabel
=
{
...
@@ -99,12 +101,13 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
...
@@ -99,12 +101,13 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
@objc
func
filterButtonAction
(){
@objc
func
filterButtonAction
(){
if
let
cWindow
=
cWindow
{
if
let
cWindow
=
cWindow
{
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
)
let
filterView
:
ResourceFilterBoxView
=
ResourceFilterBoxView
.
init
(
frame
:
cWindow
.
bounds
,
startDate
:
self
.
filterBoxModel
?
.
startDate
,
endDate
:
self
.
filterBoxModel
?
.
endDate
,
sortType
:
self
.
filterBoxModel
?
.
sortType
)
// 添加毛玻璃效果
// 添加毛玻璃效果
cWindow
.
showBlur
()
cWindow
.
showBlur
()
cWindow
.
addSubview
(
filterView
)
cWindow
.
addSubview
(
filterView
)
filterView
.
submitCallBack
=
{
model
in
filterView
.
submitCallBack
=
{
model
in
self
.
filterBoxModel
=
model
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
self
.
filterButton
.
setTitle
(
model
.
sortType
.
rawValue
,
for
:
.
normal
)
self
.
filterButton
.
setTitle
(
model
.
sortType
.
rawValue
,
for
:
.
normal
)
}
}
...
...
PhoneManager/Class/Page/Home/View/Model/HomePhotosModel .swift
View file @
b2337b07
...
@@ -111,10 +111,6 @@ class PhotoDataManager {
...
@@ -111,10 +111,6 @@ class PhotoDataManager {
let
dataUpdated
=
Notification
.
Name
(
"DataUpdatedNotification"
)
let
dataUpdated
=
Notification
.
Name
(
"DataUpdatedNotification"
)
NotificationCenter
.
default
.
post
(
name
:
dataUpdated
,
object
:
nil
,
userInfo
:
nil
)
NotificationCenter
.
default
.
post
(
name
:
dataUpdated
,
object
:
nil
,
userInfo
:
nil
)
})
})
// 将单利中的数据也删除
for
item
in
data
{
Singleton
.
shared
.
resourceModel
.
removeAll
{
$0
.
localIdentifier
==
item
.
localIdentifier
}
}
}
}
// 从文件读取
// 从文件读取
...
...
PhoneManager/Class/Page/Home/View/Photo
Remove
NavView.swift
→
PhoneManager/Class/Page/Home/View/Photo
VideoDetail
NavView.swift
View file @
b2337b07
...
@@ -8,7 +8,12 @@
...
@@ -8,7 +8,12 @@
import
UIKit
import
UIKit
import
SnapKit
import
SnapKit
class
PhotoRemoveNavView
:
UIView
{
enum
PhotoVideoDetailNavType
{
case
dateTimeNav
case
dateAndSizeNav
}
class
PhotoVideoDetailNavView
:
UIView
{
public
var
backButton
:
UIButton
!
public
var
backButton
:
UIButton
!
...
@@ -22,9 +27,9 @@ class PhotoRemoveNavView: UIView {
...
@@ -22,9 +27,9 @@ class PhotoRemoveNavView: UIView {
var
reSetCallBack
:()
->
Void
=
{}
var
reSetCallBack
:()
->
Void
=
{}
public
var
mediaType
:
TrashTypeEnum
=
.
shot
{
public
var
showType
:
PhotoVideoDetailNavType
=
.
dateTimeNav
{
didSet
{
didSet
{
if
mediaType
==
.
video
{
if
showType
==
.
dateAndSizeNav
{
self
.
sizeLbel
.
isHidden
=
false
self
.
sizeLbel
.
isHidden
=
false
self
.
topConstraint
?
.
update
(
offset
:
22
+
statusBarHeight
)
self
.
topConstraint
?
.
update
(
offset
:
22
+
statusBarHeight
)
}
else
{
}
else
{
...
...
PhoneManager/Class/Page/Home/View/ResourceFilterBoxView.swift
View file @
b2337b07
...
@@ -35,7 +35,7 @@ class ResourceFilterBoxView : UIView {
...
@@ -35,7 +35,7 @@ class ResourceFilterBoxView : UIView {
var
startDate
:
Date
?
var
startDate
:
Date
?
var
endDate
:
Date
?
var
endDate
:
Date
?
var
current
Index
:
Int
=
0
var
current
SortType
:
ResouceSortType
=
.
largest
let
tableData
:
[
String
]
=
[
"The largest"
,
"The smallest"
,
"The latest"
,
"The oldest"
]
let
tableData
:
[
String
]
=
[
"The largest"
,
"The smallest"
,
"The latest"
,
"The oldest"
]
var
callBack
:
callBack
<
Any
>
=
{
sortType
in
}
var
callBack
:
callBack
<
Any
>
=
{
sortType
in
}
...
@@ -112,12 +112,75 @@ class ResourceFilterBoxView : UIView {
...
@@ -112,12 +112,75 @@ class ResourceFilterBoxView : UIView {
return
view
return
view
}()
}()
override
init
(
frame
:
CGRect
)
{
init
(
frame
:
CGRect
,
startDate
:
Date
?,
endDate
:
Date
?,
sortType
:
ResouceSortType
?
)
{
super
.
init
(
frame
:
frame
)
super
.
init
(
frame
:
frame
)
self
.
startDate
=
startDate
self
.
endDate
=
endDate
if
let
sortType
=
sortType
{
self
.
currentSortType
=
sortType
}
addViews
()
addViews
()
setUpUI
()
setUpUI
()
self
.
setDefaultDataInPage
()
}
}
private
func
setDefaultDataInPage
(){
// 设置按钮
resetByType
(
date
:
self
.
startDate
,
type
:
PikerDateType
.
start
)
resetByType
(
date
:
self
.
endDate
,
type
:
PikerDateType
.
end
)
// 设置选择框
DispatchQueue
.
main
.
async
{
self
.
tableView
.
reloadData
()
}
}
/// 设置当前年月
/// - Parameters:
/// - date: 时间
/// - type: 类型
private
func
resetByType
(
date
:
Date
?,
type
:
PikerDateType
){
if
let
date
=
date
{
let
timeNumber
=
getYearAndMonthFromDate
(
currentDate
:
date
)
if
let
year
=
timeNumber
.
0
{
if
let
month
=
timeNumber
.
1
{
self
.
resetDateStringFromYearAndMonth
(
year
:
year
,
month
:
month
,
type
:
type
)
}
}
}
}
/// 通过时间获取年月
/// - Parameter currentDate: 当前时间
/// - Returns: 年和月
private
func
getYearAndMonthFromDate
(
currentDate
:
Date
)
->
(
Int
?,
Int
?){
let
calendar
=
Calendar
.
current
let
components
=
calendar
.
dateComponents
([
.
year
,
.
month
],
from
:
currentDate
)
return
(
components
.
year
,
components
.
month
)
}
/// 设置按钮显示
/// - Parameters:
/// - year: 年
/// - month: 月
/// - type: 按钮类型
func
resetDateStringFromYearAndMonth
(
year
:
Int
,
month
:
Int
,
type
:
PikerDateType
){
DispatchQueue
.
main
.
async
{
if
type
==
.
start
{
self
.
startDateButton
.
dateButton
.
setTitle
(
"From
\(
self
.
getMonthEn
(
month
:
month
)
)
\(
year
)
"
,
for
:
.
normal
)
self
.
startDateButton
.
closeButton
.
isHidden
=
false
self
.
startDate
=
self
.
dateFrom
(
year
:
year
,
month
:
month
)
}
else
{
self
.
endDateButton
.
dateButton
.
setTitle
(
"To
\(
self
.
getMonthEn
(
month
:
month
)
)
\(
year
)
"
,
for
:
.
normal
)
self
.
endDateButton
.
closeButton
.
isHidden
=
false
self
.
endDate
=
self
.
lastDayOfMonth
(
year
:
year
,
month
:
month
)
}
}
}
func
getMonthEn
(
month
:
Int
)
->
String
{
func
getMonthEn
(
month
:
Int
)
->
String
{
// 检查输入是否在有效范围内(1-12)
// 检查输入是否在有效范围内(1-12)
guard
(
1
...
12
)
.
contains
(
month
)
else
{
guard
(
1
...
12
)
.
contains
(
month
)
else
{
...
@@ -149,6 +212,13 @@ class ResourceFilterBoxView : UIView {
...
@@ -149,6 +212,13 @@ class ResourceFilterBoxView : UIView {
self
.
selectedView
.
addSubview
(
self
.
tableView
)
self
.
selectedView
.
addSubview
(
self
.
tableView
)
self
.
selectedView
.
addSubview
(
self
.
applyButton
)
self
.
selectedView
.
addSubview
(
self
.
applyButton
)
self
.
startDateButton
.
closeCallBack
=
{
self
.
startDate
=
nil
}
self
.
endDateButton
.
closeCallBack
=
{
self
.
endDate
=
nil
}
self
.
startDateButton
.
reSetButtonTitle
()
self
.
startDateButton
.
reSetButtonTitle
()
self
.
endDateButton
.
reSetButtonTitle
()
self
.
endDateButton
.
reSetButtonTitle
()
...
@@ -219,27 +289,10 @@ class ResourceFilterBoxView : UIView {
...
@@ -219,27 +289,10 @@ class ResourceFilterBoxView : UIView {
self
.
removeFromSuperview
()
self
.
removeFromSuperview
()
cWindow
?
.
hideBlur
()
cWindow
?
.
hideBlur
()
self
.
submitCallBack
(
ResourceFilterBoxModel
.
init
(
startDate
:
self
.
startDate
,
endDate
:
self
.
endDate
,
sortType
:
getSortTypeByTag
(
tag
:
self
.
currentIndex
)
))
self
.
submitCallBack
(
ResourceFilterBoxModel
.
init
(
startDate
:
self
.
startDate
,
endDate
:
self
.
endDate
,
sortType
:
self
.
currentSortType
))
// 开始排序
// 开始排序
}
}
func
getSortTypeByTag
(
tag
:
Int
)
->
ResouceSortType
{
var
tempType
:
ResouceSortType
=
.
largest
switch
self
.
currentIndex
{
case
0
:
tempType
=
.
largest
case
1
:
tempType
=
.
smallest
case
2
:
tempType
=
.
latest
case
3
:
tempType
=
.
oldest
default
:
break
}
return
tempType
}
func
dateFrom
(
year
:
Int
,
month
:
Int
)
->
Date
?
{
func
dateFrom
(
year
:
Int
,
month
:
Int
)
->
Date
?
{
var
components
=
DateComponents
()
var
components
=
DateComponents
()
components
.
year
=
year
components
.
year
=
year
...
@@ -320,17 +373,7 @@ class ResourceFilterBoxView : UIView {
...
@@ -320,17 +373,7 @@ class ResourceFilterBoxView : UIView {
self
.
dismissDatePicker
()
self
.
dismissDatePicker
()
}
}
self
.
datePicker
?
.
onConfirm
=
{
type
,
year
,
month
in
self
.
datePicker
?
.
onConfirm
=
{
type
,
year
,
month
in
DispatchQueue
.
main
.
async
{
self
.
resetDateStringFromYearAndMonth
(
year
:
year
,
month
:
month
,
type
:
type
)
if
type
==
.
start
{
self
.
startDateButton
.
dateButton
.
setTitle
(
"From
\(
self
.
getMonthEn
(
month
:
month
)
)
\(
year
)
"
,
for
:
.
normal
)
self
.
startDateButton
.
closeButton
.
isHidden
=
false
self
.
startDate
=
self
.
dateFrom
(
year
:
year
,
month
:
month
)
}
else
{
self
.
endDateButton
.
dateButton
.
setTitle
(
"To
\(
self
.
getMonthEn
(
month
:
month
)
)
\(
year
)
"
,
for
:
.
normal
)
self
.
endDateButton
.
closeButton
.
isHidden
=
false
self
.
endDate
=
self
.
lastDayOfMonth
(
year
:
year
,
month
:
month
)
}
}
self
.
dismissDatePicker
()
self
.
dismissDatePicker
()
}
}
}
}
...
@@ -359,10 +402,10 @@ extension ResourceFilterBoxView : UITableViewDataSource,UITableViewDelegate {
...
@@ -359,10 +402,10 @@ extension ResourceFilterBoxView : UITableViewDataSource,UITableViewDelegate {
cell
.
selectButton
.
setTitle
(
tableData
[
indexPath
.
row
],
for
:
.
normal
)
cell
.
selectButton
.
setTitle
(
tableData
[
indexPath
.
row
],
for
:
.
normal
)
cell
.
callBack
=
{
[
weak
self
]
cellTag
in
cell
.
callBack
=
{
[
weak
self
]
cellTag
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
self
.
current
Index
=
cellTag
as!
Int
self
.
current
SortType
=
getSortTypeByTag
(
index
:
cellTag
as!
Int
)
self
.
tableView
.
reloadData
()
self
.
tableView
.
reloadData
()
}
}
if
indexPath
.
row
==
currentIndex
{
if
getSortTypeByTag
(
index
:
indexPath
.
row
)
==
currentSortType
{
cell
.
selectButton
.
layer
.
borderWidth
=
1.0
cell
.
selectButton
.
layer
.
borderWidth
=
1.0
cell
.
selectButton
.
setTitleColor
(
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
),
for
:
.
normal
)
cell
.
selectButton
.
setTitleColor
(
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
),
for
:
.
normal
)
}
else
{
}
else
{
...
@@ -375,4 +418,20 @@ extension ResourceFilterBoxView : UITableViewDataSource,UITableViewDelegate {
...
@@ -375,4 +418,20 @@ extension ResourceFilterBoxView : UITableViewDataSource,UITableViewDelegate {
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
56
return
56
}
}
func
getSortTypeByTag
(
index
:
Int
)
->
ResouceSortType
{
if
index
==
0
{
return
ResouceSortType
.
largest
}
if
index
==
1
{
return
ResouceSortType
.
smallest
}
if
index
==
2
{
return
ResouceSortType
.
latest
}
if
index
==
3
{
return
ResouceSortType
.
oldest
}
return
ResouceSortType
.
largest
}
}
}
PhoneManager/Class/Page/Public/Loading/PMLoadingView.swift
View file @
b2337b07
...
@@ -28,6 +28,17 @@ class PMLoadingHUD{
...
@@ -28,6 +28,17 @@ class PMLoadingHUD{
}
}
}
}
func
showLoding
(
_
title
:
String
=
"Loding..."
,
_
subTitle
:
String
=
"Please wait on the screen. This might take several minutes."
){
disMiss
()
DispatchQueue
.
main
.
async
{
cWindow
?
.
addSubview
(
self
.
loadingView
)
cWindow
?
.
bringSubviewToFront
(
self
.
loadingView
)
self
.
loadingView
.
setTitleaAndSubTitle
(
title
:
title
,
subTitle
:
subTitle
)
self
.
loadingView
.
animationView
.
play
()
}
}
func
disMiss
(){
func
disMiss
(){
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
self
.
loadingView
.
animationView
.
stop
()
self
.
loadingView
.
animationView
.
stop
()
...
...
PhoneManager/Class/Page/Secret/PMShowImgVideoController.swift
View file @
b2337b07
...
@@ -29,6 +29,12 @@ class PMShowImgVideoController: BaseViewController {
...
@@ -29,6 +29,12 @@ class PMShowImgVideoController: BaseViewController {
var
imageVideoPath
:[
String
]
=
[]
var
imageVideoPath
:[
String
]
=
[]
lazy
var
navView
:
PhotoVideoDetailNavView
=
{
let
view
=
PhotoVideoDetailNavView
()
return
view
}()
// 首页过来的数据
// 首页过来的数据
var
homeDataSource
:
[
ImageSeletedCollectionItem
]?
{
var
homeDataSource
:
[
ImageSeletedCollectionItem
]?
{
didSet
{
didSet
{
...
@@ -42,7 +48,11 @@ class PMShowImgVideoController: BaseViewController {
...
@@ -42,7 +48,11 @@ class PMShowImgVideoController: BaseViewController {
}
}
}
}
var
currentIdx
=
0
var
currentIdx
=
0
{
didSet
{
changeNavInfo
()
}
}
var
selectSet
=
NSMutableSet
()
var
selectSet
=
NSMutableSet
()
var
backOrgPageCallBack
:
(
IndexPath
?,[
ImageSeletedCollectionItem
]?)
->
Void
=
{
index
,
data
in
}
var
backOrgPageCallBack
:
(
IndexPath
?,[
ImageSeletedCollectionItem
]?)
->
Void
=
{
index
,
data
in
}
...
@@ -53,6 +63,13 @@ class PMShowImgVideoController: BaseViewController {
...
@@ -53,6 +63,13 @@ class PMShowImgVideoController: BaseViewController {
super
.
viewDidLoad
()
super
.
viewDidLoad
()
self
.
view
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.96
,
blue
:
0.99
,
alpha
:
1
)
self
.
view
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.96
,
blue
:
0.99
,
alpha
:
1
)
self
.
view
.
addSubview
(
self
.
navView
)
self
.
navView
.
showType
=
.
dateAndSizeNav
self
.
navView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
statusBarHeight
+
44
)
}
}
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
...
@@ -69,6 +86,17 @@ class PMShowImgVideoController: BaseViewController {
...
@@ -69,6 +86,17 @@ class PMShowImgVideoController: BaseViewController {
}
}
self
.
view
.
layoutIfNeeded
()
self
.
view
.
layoutIfNeeded
()
self
.
MaxCollection
.
scrollToItem
(
at
:
IndexPath
(
row
:
currentIdx
,
section
:
0
),
at
:
.
centeredHorizontally
,
animated
:
false
)
self
.
MaxCollection
.
scrollToItem
(
at
:
IndexPath
(
row
:
currentIdx
,
section
:
0
),
at
:
.
centeredHorizontally
,
animated
:
false
)
changeNavInfo
()
}
private
func
changeNavInfo
(){
DispatchQueue
.
main
.
async
{
if
let
model
=
self
.
homeDataSource
?[
self
.
currentIdx
]
.
id
{
self
.
navView
.
sizeLbel
.
text
=
formatFileSize
(
model
.
assetSize
)
self
.
navView
.
titleLbel
.
text
=
self
.
changeDateToString
(
model
:
model
)
}
}
}
}
...
@@ -84,6 +112,13 @@ class PMShowImgVideoController: BaseViewController {
...
@@ -84,6 +112,13 @@ class PMShowImgVideoController: BaseViewController {
self
.
backOrgPageCallBack
(
self
.
oldPageIndexPath
,
self
.
homeDataSource
)
self
.
backOrgPageCallBack
(
self
.
oldPageIndexPath
,
self
.
homeDataSource
)
}
}
private
func
changeDateToString
(
model
:
AssetModel
)
->
String
{
let
formatter
=
DateFormatter
()
formatter
.
dateStyle
=
.
medium
formatter
.
timeStyle
=
.
none
return
formatter
.
string
(
from
:
model
.
createDate
)
}
private
lazy
var
MaxCollection
:
UICollectionView
=
{
private
lazy
var
MaxCollection
:
UICollectionView
=
{
let
flowlayout
=
UICollectionViewFlowLayout
()
let
flowlayout
=
UICollectionViewFlowLayout
()
flowlayout
.
sectionInset
=
UIEdgeInsets
()
flowlayout
.
sectionInset
=
UIEdgeInsets
()
...
@@ -129,11 +164,20 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
...
@@ -129,11 +164,20 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
let
offsetx
=
MaxCollection
.
contentOffset
.
x
let
offsetx
=
MaxCollection
.
contentOffset
.
x
let
width
=
collectView
.
width
let
width
=
collectView
.
width
let
current
:
Int
=
Int
(
offsetx
/
width
)
let
current
:
Int
=
Int
(
offsetx
/
width
)
//
currentIdx = current
self
.
currentIdx
=
current
bottItems
.
scrollToItem
(
at
:
IndexPath
(
row
:
current
,
section
:
0
),
at
:
.
left
,
animated
:
true
)
bottItems
.
scrollToItem
(
at
:
IndexPath
(
row
:
current
,
section
:
0
),
at
:
.
left
,
animated
:
true
)
}
}
}
}
func
scrollViewDidEndScrollingAnimation
(
_
scrollView
:
UIScrollView
)
{
guard
let
collectView
=
scrollView
as?
UICollectionView
else
{
return
}
if
collectView
==
MaxCollection
{
let
offsetx
=
MaxCollection
.
contentOffset
.
x
let
width
=
collectView
.
width
self
.
currentIdx
=
Int
(
offsetx
/
width
)
}
}
private
func
setMaxCollection
(
collectionView
:
UICollectionView
)
->
Void
{
private
func
setMaxCollection
(
collectionView
:
UICollectionView
)
->
Void
{
if
collectionView
==
bottItems
{
if
collectionView
==
bottItems
{
...
@@ -142,15 +186,13 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
...
@@ -142,15 +186,13 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
UIView
.
animate
(
withDuration
:
0.5
)
{
UIView
.
animate
(
withDuration
:
0.5
)
{
collectionView
.
contentOffset
=
CGPointMake
(
idx
*
(
68
+
10
)
,
0
)
collectionView
.
contentOffset
=
CGPointMake
(
idx
*
(
68
+
10
)
,
0
)
}
}
self
.
currentIdx
=
Int
(
idx
)
MaxCollection
.
scrollToItem
(
at
:
IndexPath
(
row
:
Int
(
idx
),
section
:
0
),
at
:
.
centeredHorizontally
,
animated
:
true
)
MaxCollection
.
scrollToItem
(
at
:
IndexPath
(
row
:
Int
(
idx
),
section
:
0
),
at
:
.
centeredHorizontally
,
animated
:
true
)
}
}
}
}
func
scrollViewDidEndDecelerating
(
_
scrollView
:
UIScrollView
)
{
func
scrollViewDidEndDecelerating
(
_
scrollView
:
UIScrollView
)
{
guard
let
collectView
=
scrollView
as?
UICollectionView
else
{
return
}
guard
let
collectView
=
scrollView
as?
UICollectionView
else
{
return
}
// if collectView == MaxCollection {
// bottItems.reloadData()
// }
self
.
setMaxCollection
(
collectionView
:
collectView
)
self
.
setMaxCollection
(
collectionView
:
collectView
)
}
}
...
@@ -208,7 +250,9 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
...
@@ -208,7 +250,9 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
showName
.
loadPhotoOrVideo
{
durs
,
icon
in
showName
.
loadPhotoOrVideo
{
durs
,
icon
in
cell
.
icon
=
icon
cell
.
icon
=
icon
}
}
cell
.
bestResultButton
.
isHidden
=
indexPath
.
row
!=
0
if
let
data
=
self
.
homeDataSource
{
cell
.
bestResultButton
.
isHidden
=
indexPath
.
row
!=
0
||
data
.
count
<=
1
}
cell
.
isCurrent
=
selectSet
.
contains
(
indexPath
.
row
)
cell
.
isCurrent
=
selectSet
.
contains
(
indexPath
.
row
)
cell
.
callblock
=
{[
weak
self
]
in
cell
.
callblock
=
{[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
...
@@ -263,7 +307,9 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
...
@@ -263,7 +307,9 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
let
cell
=
collectionView
.
dequeueReusableCell
(
withReuseIdentifier
:
PMShowImgCellID
,
for
:
indexPath
)
as!
PMShowImgCell
let
cell
=
collectionView
.
dequeueReusableCell
(
withReuseIdentifier
:
PMShowImgCellID
,
for
:
indexPath
)
as!
PMShowImgCell
cell
.
icon
=
self
.
homeDataSource
!
[
indexPath
.
row
]
.
image
??
UIImage
()
cell
.
icon
=
self
.
homeDataSource
!
[
indexPath
.
row
]
.
image
??
UIImage
()
cell
.
isCurrent
=
selectSet
.
contains
(
indexPath
.
row
)
cell
.
isCurrent
=
selectSet
.
contains
(
indexPath
.
row
)
cell
.
bestResultButton
.
isHidden
=
indexPath
.
row
!=
0
if
let
data
=
self
.
homeDataSource
{
cell
.
bestResultButton
.
isHidden
=
indexPath
.
row
!=
0
||
data
.
count
<=
1
}
cell
.
callblock
=
{[
weak
self
]
in
cell
.
callblock
=
{[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
self
.
vibrate
()
self
.
vibrate
()
...
@@ -307,7 +353,9 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
...
@@ -307,7 +353,9 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
// 表示这个是视频
// 表示这个是视频
cell
.
type
=
1
cell
.
type
=
1
cell
.
isCurrent
=
selectSet
.
contains
(
indexPath
.
row
)
cell
.
isCurrent
=
selectSet
.
contains
(
indexPath
.
row
)
cell
.
bestResultButton
.
isHidden
=
indexPath
.
row
!=
0
if
let
data
=
self
.
homeDataSource
{
cell
.
bestResultButton
.
isHidden
=
indexPath
.
row
!=
0
||
data
.
count
<=
1
}
cell
.
callblock
=
{[
weak
self
]
in
cell
.
callblock
=
{[
weak
self
]
in
guard
let
self
=
self
else
{
return
}
guard
let
self
=
self
else
{
return
}
self
.
vibrate
()
self
.
vibrate
()
...
...
PhoneManager/Class/Tool/Singleton/Singleton.swift
View file @
b2337b07
...
@@ -15,8 +15,6 @@ class Singleton {
...
@@ -15,8 +15,6 @@ class Singleton {
// 私有化初始化方法,防止外部创建新实例
// 私有化初始化方法,防止外部创建新实例
private
init
()
{}
private
init
()
{}
var
resourceModel
:
[
AssetModel
]
=
[]
var
maxDeleteCount
:
Int
=
25
var
maxDeleteCount
:
Int
=
25
var
trashData
:
[
TrashTypeEnum
:
[
AssetModel
]]
=
[:]
var
trashData
:
[
TrashTypeEnum
:
[
AssetModel
]]
=
[:]
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment