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
881bb320
Commit
881bb320
authored
May 19, 2025
by
CZ1004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【优化】修改部分bug、优化功能
parent
873ecde3
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
258 additions
and
469 deletions
+258
-469
CompressController.swift
...r/Class/Page/Compress/Controller/CompressController.swift
+23
-49
CompressCustomHeaderView.swift
...r/Class/Page/Compress/View/CompressCustomHeaderView.swift
+35
-51
CompressViewModel.swift
...ger/Class/Page/Compress/ViewModel/CompressViewModel.swift
+5
-28
HomeInfoViewController.swift
...r/Class/Page/Home/Controller/HomeInfoViewController.swift
+5
-0
HomePhotosDetailViewController.swift
...Page/Home/Controller/HomePhotosDetailViewController.swift
+29
-45
HomeVideoDetailController.swift
...lass/Page/Home/Controller/HomeVideoDetailController.swift
+28
-51
PhotoDetailViewController.swift
...lass/Page/Home/Controller/PhotoDetailViewController.swift
+1
-0
PhotoRemoveViewController.swift
...lass/Page/Home/Controller/PhotoRemoveViewController.swift
+9
-3
HomeInfoView.swift
PhoneManager/Class/Page/Home/View/HomeInfoView.swift
+24
-34
HomePhotosDetailCustomHeaderView.swift
...ass/Page/Home/View/HomePhotosDetailCustomHeaderView.swift
+36
-52
HomeVideoDetailCustomHeaderView.swift
...lass/Page/Home/View/HomeVideoDetailCustomHeaderView.swift
+39
-149
ResourceFilterBoxView.swift
...eManager/Class/Page/Home/View/ResourceFilterBoxView.swift
+9
-3
YearMonthPickerView.swift
PhoneManager/Class/Page/Home/View/YearMonthPickerView.swift
+9
-0
HomeInfoTableViewCell.swift
...ger/Class/Page/Home/View/cell/HomeInfoTableViewCell.swift
+2
-3
PMLoadingView.swift
PhoneManager/Class/Page/Public/Loading/PMLoadingView.swift
+2
-1
PMShowImgVideoController.swift
...eManager/Class/Page/Secret/PMShowImgVideoController.swift
+2
-0
No files found.
PhoneManager/Class/Page/Compress/Controller/CompressController.swift
View file @
881bb320
...
...
@@ -21,14 +21,12 @@ class CompressController : BaseViewController {
private
var
compressNav
:
CompressNavView
?
// 排序
var
currentSort
:
Int
=
0
{
var
currentSort
:
ResouceSortType
=
.
largest
{
didSet
{
clearSelected
()
}
}
// 资源类型 - 相册或者视频
var
currentResourceType
:
CompressType
=
.
compressPhoto
...
...
@@ -122,22 +120,17 @@ class CompressController : BaseViewController {
let
datas
=
Singleton
.
shared
.
resourceModel
if
datas
.
count
>
0
{
// 这里需要重新排序下
if
self
.
currentSort
==
0
{
self
.
resourceData
=
datas
.
sorted
{
$0
.
assetSize
>
$1
.
assetSize
}
}
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
}
}
self
.
resourceData
=
datas
self
.
sortByType
(
sortType
:
self
.
currentSort
)
}
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
guard
let
self
else
{
return
}
self
.
resourceData
=
models
Singleton
.
shared
.
resourceModel
=
self
.
resourceData
PMLoadingHUD
.
share
.
disMiss
()
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
1.0
)
{
PMLoadingHUD
.
share
.
disMiss
()
}
}
}
}
...
...
@@ -236,20 +229,10 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
func
collectionView
(
_
collectionView
:
UICollectionView
,
viewForSupplementaryElementOfKind
kind
:
String
,
at
indexPath
:
IndexPath
)
->
UICollectionReusableView
{
if
kind
==
UICollectionView
.
elementKindSectionHeader
{
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
}
self
.
currentSort
=
sortType
as!
Int
self
.
sortByType
(
sortType
:
self
.
currentSort
,
header
:
header
)
}
self
.
currentSort
=
fileterModel
.
sortType
self
.
sortByType
(
sortType
:
self
.
currentSort
)
}
header
.
changeView
.
callBack
=
{[
weak
self
]
flag
in
guard
let
self
else
{
return
}
...
...
@@ -262,9 +245,13 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
if
self
.
currentResourceType
==
.
compressPhoto
{
self
.
getViewData
()
}
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
guard
let
self
else
{
return
}
self
.
resourceData
=
models
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
1.0
)
{
PMLoadingHUD
.
share
.
disMiss
()
}
}
}
}
...
...
@@ -282,34 +269,21 @@ extension CompressController:WaterfallMutiSectionDelegate,UICollectionViewDataSo
}
}
func
sortByType
(
sortType
:
Int
,
header
:
CompressCustomHeaderView
){
let
viewModel
=
CompressViewModel
()
func
sortByType
(
sortType
:
ResouceSortType
){
switch
sortType
{
case
0
:
header
.
selectlabel
.
text
=
"Largest"
// 按照文件大小降序
self
.
resourceData
=
viewModel
.
sortRsource
(
resource
:
self
.
resourceData
,
sortType
:
1
,
sortKind
:
0
)
case
.
largest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
assetSize
>
$1
.
assetSize
}
break
case
1
:
header
.
selectlabel
.
text
=
"Smallest"
// 按照文件大小升序
self
.
resourceData
=
viewModel
.
sortRsource
(
resource
:
self
.
resourceData
,
sortType
:
0
,
sortKind
:
0
)
case
.
smallest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
assetSize
<
$1
.
assetSize
}
break
case
2
:
header
.
selectlabel
.
text
=
"Newest"
// 按照时间降序
self
.
resourceData
=
viewModel
.
sortRsource
(
resource
:
self
.
resourceData
,
sortType
:
1
,
sortKind
:
1
)
case
.
latest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
createDate
>
$1
.
createDate
}
break
case
3
:
header
.
selectlabel
.
text
=
"Oldest"
// 按照时间升序
self
.
resourceData
=
viewModel
.
sortRsource
(
resource
:
self
.
resourceData
,
sortType
:
0
,
sortKind
:
1
)
break
default
:
case
.
oldest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
createDate
<
$1
.
createDate
}
break
}
}
func
updateSubmitButton
(){
...
...
PhoneManager/Class/Page/Compress/View/CompressCustomHeaderView.swift
View file @
881bb320
...
...
@@ -9,7 +9,7 @@ import Foundation
class
CompressCustomHeaderView
:
UICollectionReusableView
{
var
callBack
:
callBack
<
Any
>
=
{
text
in
}
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
var
modeData
=
[
AssetModel
]()
{
didSet
{
...
...
@@ -51,35 +51,21 @@ class CompressCustomHeaderView: UICollectionReusableView{
return
label
}()
lazy
var
btnView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.96
,
blue
:
0.99
,
alpha
:
1
)
view
.
layer
.
cornerRadius
=
16
view
.
clipsToBounds
=
true
let
tap
=
UITapGestureRecognizer
()
tap
.
addTarget
(
self
,
action
:
#selector(
selectQulity
)
)
view
.
isUserInteractionEnabled
=
true
view
.
addGestureRecognizer
(
tap
)
return
view
// 筛选按钮
lazy
var
filterButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setImage
(
UIImage
(
named
:
"Frame 1"
),
for
:
.
normal
)
button
.
setTitle
(
"The largest"
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
14
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
0.1000
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
12
,
weight
:
.
semibold
)
button
.
setTitleColor
(
UIColor
(
red
:
0.07
,
green
:
0.07
,
blue
:
0.07
,
alpha
:
1
),
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
filterButtonAction
)
,
for
:
.
touchUpInside
)
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
siezLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"1.02 GB"
...
...
@@ -128,9 +114,7 @@ class CompressCustomHeaderView: UICollectionReusableView{
private
func
setUI
(){
self
.
addSubview
(
self
.
titlelabel
)
self
.
addSubview
(
self
.
btnView
)
self
.
btnView
.
addSubview
(
self
.
selectImageView
)
self
.
btnView
.
addSubview
(
self
.
selectlabel
)
self
.
addSubview
(
self
.
filterButton
)
self
.
addSubview
(
self
.
siezLabel
)
self
.
addSubview
(
self
.
changeView
)
self
.
addSubview
(
self
.
tipView
)
...
...
@@ -144,27 +128,17 @@ class CompressCustomHeaderView: UICollectionReusableView{
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
.
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
)
make
.
height
.
equalTo
(
28
)
make
.
width
.
equalTo
(
98
)
}
self
.
siezLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
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
)
}
self
.
changeView
.
snp
.
makeConstraints
{
make
in
...
...
@@ -193,10 +167,20 @@ class CompressCustomHeaderView: UICollectionReusableView{
}
@objc
func
selectQulity
(){
callBack
(
"selectedQulity"
)
@objc
func
filterButtonAction
(){
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
)
}
}
}
...
...
PhoneManager/Class/Page/Compress/ViewModel/CompressViewModel.swift
View file @
881bb320
...
...
@@ -67,7 +67,7 @@ class CompressViewModel{
/// 获取相册所有图片
/// - Returns: 图片信息
func
getAllPhotosToAssets
(
sortType
:
Int
,
assetType
:
CompressType
,
_
finished
:
@escaping
Finished
){
func
getAllPhotosToAssets
(
sortType
:
ResouceSortType
,
assetType
:
CompressType
,
_
finished
:
@escaping
Finished
){
var
models
:
[
AssetModel
]
=
[]
...
...
@@ -108,11 +108,11 @@ class CompressViewModel{
group
.
leave
()
if
count
==
assetsArray
.
count
{
// 默认按照文件大小排序
if
sortType
==
0
{
if
sortType
==
.
largest
{
finished
(
models
.
sorted
{
$0
.
assetSize
>
$1
.
assetSize
})
}
else
if
sortType
==
1
{
}
else
if
sortType
==
.
smallest
{
finished
(
models
.
sorted
{
$0
.
assetSize
<
$1
.
assetSize
})
}
else
if
sortType
==
2
{
}
else
if
sortType
==
.
latest
{
finished
(
models
.
sorted
{
$0
.
createDate
>
$1
.
createDate
})
}
else
{
finished
(
models
.
sorted
{
$0
.
createDate
<
$1
.
createDate
})
...
...
@@ -122,30 +122,7 @@ 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:
...
...
PhoneManager/Class/Page/Home/Controller/HomeInfoViewController.swift
View file @
881bb320
...
...
@@ -313,6 +313,11 @@ class HomeInfoViewController:BaseViewController {
titleView
.
model
.
title
=
""
showTipsVC
()
self
.
tablewView
.
keepAllNoDataCallBack
=
{
self
.
ids
=
[]
self
.
setDefaultPage
()
}
}
...
...
PhoneManager/Class/Page/Home/Controller/HomePhotosDetailViewController.swift
View file @
881bb320
...
...
@@ -37,7 +37,7 @@ class HomePhotosDetailViewController : BaseViewController {
var
resourceData
:
[
AssetModel
]
=
[]
// 排序
var
currentSort
:
Int
=
0
var
currentSort
:
ResouceSortType
=
.
largest
// 当前页面选中的
var
selectedModel
:
[
AssetModel
]
=
[]
{
...
...
@@ -253,13 +253,13 @@ class HomePhotosDetailViewController : BaseViewController {
if
self
.
resourceData
.
count
==
0
{
self
.
defaultImageView
.
isHidden
=
false
self
.
defaultTipLabel
.
isHidden
=
false
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
true
self
.
currentHeaderView
?
.
filterButton
.
isHidden
=
true
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
true
self
.
deleteButtonView
.
isHidden
=
true
}
else
{
self
.
defaultImageView
.
isHidden
=
true
self
.
defaultTipLabel
.
isHidden
=
true
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
false
self
.
currentHeaderView
?
.
filterButton
.
isHidden
=
false
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
false
self
.
deleteButtonView
.
isHidden
=
false
}
...
...
@@ -564,19 +564,22 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
header
.
modelTitlelabel
.
text
=
self
.
mediaType
?
.
rawValue
currentHeaderView
=
header
header
.
sort
Callback
=
{[
weak
self
]
in
header
.
sort
ViewSubmitCallBack
=
{[
weak
self
]
filterModel
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
}
self
.
currentSort
=
sortType
as!
Int
self
.
sortByType
(
sortType
:
self
.
currentSort
)
self
.
changeHeaderTitle
()
var
dataS
:
[
AssetModel
]
=
[]
if
self
.
mediaType
==
.
Other
{
dataS
=
PhotoManager
.
shared
.
filterOtherModels
}
else
{
dataS
=
PhotoManager
.
shared
.
filterScreenShotModels
}
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
}
}
/// 改变标题
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
func
filterDataByDate
(
orgModels
:
[
AssetModel
],
startDate
:
Date
?
,
endDate
:
Date
?)
->
[
AssetModel
]{
var
array
=
orgModels
if
startDate
!=
nil
{
array
=
array
.
filter
({
$0
.
createDate
>=
startDate
!
})
}
DispatchQueue
.
main
.
async
{
self
.
currentHeaderView
!.
selectlabel
.
text
=
title
self
.
collectionView
.
reloadData
()
if
endDate
!=
nil
{
array
=
array
.
filter
({
$0
.
createDate
<=
endDate
!
})
}
return
array
}
/// 对当前页面资源排序(注意这里获取的资源是image)
/// - Parameter sortType: 排序类型
func
sortByType
(
sortType
:
Int
){
func
sortByType
(
sortType
:
ResouceSortType
){
switch
sortType
{
case
0
:
case
.
largest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
assetSize
>
$1
.
assetSize
}
break
case
1
:
case
.
smallest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
assetSize
<
$1
.
assetSize
}
break
case
2
:
case
.
latest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
createDate
>
$1
.
createDate
}
break
case
3
:
case
.
oldest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
createDate
<
$1
.
createDate
}
break
default
:
break
}
}
...
...
PhoneManager/Class/Page/Home/Controller/HomeVideoDetailController.swift
View file @
881bb320
...
...
@@ -30,7 +30,7 @@ class HomeVideoDetailController :BaseViewController {
var
resourceData
:
[
AssetModel
]
=
[]
// 排序
var
currentSort
:
Int
=
0
var
currentSort
:
ResouceSortType
=
.
largest
// 当前页面选中的
var
selectedModel
:
[
AssetModel
]
=
[]
{
...
...
@@ -488,19 +488,17 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
currentHeaderView
=
header
header
.
compressionTipView
.
reloadData
()
header
.
sizeLabel
.
text
=
"
\(
self
.
resourceData
.
count
)
Videos"
header
.
sort
Callback
=
{[
weak
self
]
in
header
.
sort
ViewSubmitCallBack
=
{[
weak
self
]
filterModel
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
}
self
.
currentSort
=
sortType
as!
Int
self
.
sortByType
(
sortType
:
self
.
currentSort
)
self
.
changeHeaderTitle
()
let
dataS
:
[
AssetModel
]
=
PhotoManager
.
shared
.
filterVideoModels
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
()
}
}
return
header
...
...
@@ -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
){
...
...
@@ -701,13 +710,13 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
if
self
.
resourceData
.
count
==
0
{
self
.
defaultImageView
.
isHidden
=
false
self
.
defaultTipLabel
.
isHidden
=
false
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
true
self
.
currentHeaderView
?
.
filterButton
.
isHidden
=
true
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
true
self
.
deleteButtonView
.
deleteButton
.
isHidden
=
true
}
else
{
self
.
defaultImageView
.
isHidden
=
true
self
.
defaultTipLabel
.
isHidden
=
true
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
false
self
.
currentHeaderView
?
.
filterButton
.
isHidden
=
false
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
false
self
.
deleteButtonView
.
deleteButton
.
isHidden
=
false
}
...
...
@@ -745,52 +754,20 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
setDefaultPage
()
}
/// 改变标题
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
){
func
sortByType
(
sortType
:
ResouceSortType
){
switch
sortType
{
case
0
:
case
.
largest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
assetSize
>
$1
.
assetSize
}
break
case
1
:
case
.
smallest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
assetSize
<
$1
.
assetSize
}
break
case
2
:
case
.
latest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
createDate
>
$1
.
createDate
}
break
case
3
:
case
.
oldest
:
self
.
resourceData
=
self
.
resourceData
.
sorted
{
$0
.
createDate
<
$1
.
createDate
}
break
default
:
break
}
}
...
...
PhoneManager/Class/Page/Home/Controller/PhotoDetailViewController.swift
View file @
881bb320
...
...
@@ -23,6 +23,7 @@ class PhotoDetailViewController : BaseViewController {
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
self
.
view
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.96
,
blue
:
0.99
,
alpha
:
1
)
self
.
view
.
addSubview
(
self
.
closeButton
)
self
.
closeButton
.
snp
.
makeConstraints
{
make
in
...
...
PhoneManager/Class/Page/Home/Controller/PhotoRemoveViewController.swift
View file @
881bb320
...
...
@@ -77,6 +77,9 @@ class PhotoRemoveViewController: BaseViewController {
// MARK: - 生命周期
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
self
.
view
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.96
,
blue
:
0.99
,
alpha
:
1
)
formatter
.
dateStyle
=
.
medium
formatter
.
timeStyle
=
.
none
if
let
type
=
self
.
mediaType
{
...
...
@@ -295,7 +298,8 @@ class PhotoRemoveViewController: BaseViewController {
photoView
.
mediaType
=
self
.
mediaType
photoView
.
addGestureRecognizer
(
UIPanGestureRecognizer
(
target
:
self
,
action
:
#selector(
handlePan
)
))
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
)
}
...
...
@@ -467,7 +471,8 @@ class PhotoRemoveViewController: BaseViewController {
private
func
resetViewPosition
(
_
view
:
PhotosRemoveBaseView
)
{
UIView
.
animate
(
withDuration
:
0.3
)
{
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
()
}
}
...
...
@@ -484,7 +489,8 @@ class PhotoRemoveViewController: BaseViewController {
// 创建新视图并更新内容
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
.
alpha
=
0
view
.
addSubview
(
newView
)
...
...
PhoneManager/Class/Page/Home/View/HomeInfoView.swift
View file @
881bb320
...
...
@@ -21,6 +21,8 @@ class HomeInfoView :UIView {
var
callBack
:
callBack
<
Any
>
=
{
text
in
}
var
keepAllNoDataCallBack
:
()
->
Void
=
{}
var
deleteCallBack
:
callBack
<
[
AssetModel
]
>
=
{
array
in
}
var
titleShowHideCallBack
:
callBack
<
Bool
>
=
{
isShow
in
}
...
...
@@ -311,6 +313,7 @@ class HomeInfoView :UIView {
tableView
.
contentInset
=
UIEdgeInsets
(
top
:
0
,
left
:
0
,
bottom
:
deleteView
.
isHidden
?
12
:
deleteView
.
height
+
12
,
right
:
0
)
self
.
nextRowButton
.
isHidden
=
!
self
.
isShowNextRowButton
()
}
}
...
...
@@ -322,34 +325,6 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
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
()
{
...
...
@@ -413,10 +388,25 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
let
cell
=
tableView
.
dequeueReusableCell
(
withIdentifier
:
HomeInfoTableViewCell
.
identifier
,
for
:
indexPath
)
as!
HomeInfoTableViewCell
cell
.
saveKeepListFinishedCallback
=
{
self
.
ids
?
.
remove
(
at
:
indexPath
.
section
)
self
.
resetModels
()
tableView
.
deleteRows
(
at
:
[
indexPath
],
with
:
.
automatic
)
cell
.
saveKeepListFinishedCallback
=
{[
weak
self
]
index
in
guard
let
self
else
{
return
}
self
.
ids
?
.
remove
(
at
:
index
.
section
)
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
...
...
@@ -458,10 +448,10 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
for
item
in
orgModels
{
var
array
=
item
if
startDate
!=
nil
{
array
=
array
.
filter
({
$0
.
createDate
>
startDate
!
})
array
=
array
.
filter
({
$0
.
createDate
>
=
startDate
!
})
}
if
endDate
!=
nil
{
array
=
array
.
filter
({
$0
.
createDate
<
endDate
!
})
array
=
array
.
filter
({
$0
.
createDate
<
=
endDate
!
})
}
if
array
.
count
>=
2
{
...
...
PhoneManager/Class/Page/Home/View/HomePhotosDetailCustomHeaderView.swift
View file @
881bb320
...
...
@@ -9,7 +9,7 @@ import Foundation
class
HomePhotosDetailCustomHeaderView
:
UICollectionReusableView
{
var
sort
Callback
:
()
->
Void
=
{
}
var
sort
ViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
lazy
var
modelTitlelabel
:
UILabel
=
{
let
label
=
UILabel
()
...
...
@@ -20,33 +20,22 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
return
label
}()
lazy
var
btnView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.96
,
blue
:
0.99
,
alpha
:
1
)
view
.
layer
.
cornerRadius
=
16
view
.
clipsToBounds
=
true
let
tap
=
UITapGestureRecognizer
()
tap
.
addTarget
(
self
,
action
:
#selector(
sortAction
)
)
view
.
isUserInteractionEnabled
=
true
view
.
addGestureRecognizer
(
tap
)
return
view
// 筛选按钮
lazy
var
filterButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setImage
(
UIImage
(
named
:
"Frame 1"
),
for
:
.
normal
)
button
.
setTitle
(
"The largest"
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
14
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
0.1000
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
12
,
weight
:
.
semibold
)
button
.
setTitleColor
(
UIColor
(
red
:
0.07
,
green
:
0.07
,
blue
:
0.07
,
alpha
:
1
),
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
filterButtonAction
)
,
for
:
.
touchUpInside
)
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
=
{
let
label
=
UILabel
()
label
.
text
=
"0 Photos"
...
...
@@ -59,43 +48,26 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
private
func
setUI
(){
self
.
addSubview
(
self
.
modelTitlelabel
)
self
.
addSubview
(
self
.
btnView
)
self
.
addSubview
(
self
.
countLabel
)
self
.
btnView
.
addSubview
(
self
.
selectImageView
)
self
.
btnView
.
addSubview
(
self
.
selectlabel
)
self
.
addSubview
(
self
.
filterButton
)
self
.
modelTitlelabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
0
)
make
.
top
.
equalToSuperview
()
.
offset
(
14
)
make
.
width
.
equalTo
(
150
*
RScreenW
())
make
.
height
.
equalTo
(
28
)
}
self
.
btnView
.
snp
.
makeConstraints
{
make
in
self
.
filterButton
.
snp
.
makeConstraints
{
make
in
make
.
centerY
.
equalTo
(
self
.
modelTitlelabel
.
snp
.
centerY
)
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
)
make
.
height
.
equalTo
(
28
)
make
.
width
.
equalTo
(
98
)
}
self
.
countLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
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
)
}
}
...
...
@@ -112,7 +84,19 @@ class HomePhotosDetailCustomHeaderView : UICollectionReusableView {
setUI
()
}
@objc
func
sortAction
(){
sortCallback
()
@objc
func
filterButtonAction
(){
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
)
}
}
}
}
PhoneManager/Class/Page/Home/View/HomeVideoDetailCustomHeaderView.swift
View file @
881bb320
...
...
@@ -8,7 +8,7 @@
import
Foundation
class
HomeVideoDetailCustomHeaderView
:
UICollectionReusableView
{
var
sort
Callback
:
()
->
Void
=
{
}
var
sort
ViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
lazy
var
modelTitlelabel
:
UILabel
=
{
let
label
=
UILabel
()
...
...
@@ -18,34 +18,19 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
label
.
font
=
UIFont
.
systemFont
(
ofSize
:
20
,
weight
:
.
bold
)
return
label
}()
lazy
var
btnView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.96
,
blue
:
0.99
,
alpha
:
1
)
view
.
layer
.
cornerRadius
=
16
view
.
clipsToBounds
=
true
let
tap
=
UITapGestureRecognizer
()
tap
.
addTarget
(
self
,
action
:
#selector(
sortAction
)
)
view
.
isUserInteractionEnabled
=
true
view
.
addGestureRecognizer
(
tap
)
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
filterButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setImage
(
UIImage
(
named
:
"Frame 1"
),
for
:
.
normal
)
button
.
setTitle
(
"The largest"
,
for
:
.
normal
)
button
.
layer
.
cornerRadius
=
14
button
.
clipsToBounds
=
true
button
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
0.1000
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
12
,
weight
:
.
semibold
)
button
.
setTitleColor
(
UIColor
(
red
:
0.07
,
green
:
0.07
,
blue
:
0.07
,
alpha
:
1
),
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
filterButtonAction
)
,
for
:
.
touchUpInside
)
button
.
isHidden
=
false
return
button
}()
lazy
var
sizeLabel
:
UILabel
=
{
let
label
=
UILabel
()
...
...
@@ -56,72 +41,14 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
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
(){
self
.
addSubview
(
self
.
modelTitlelabel
)
self
.
addSubview
(
self
.
btnView
)
self
.
addSubview
(
self
.
filterButton
)
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
make
.
left
.
equalToSuperview
()
.
offset
(
0
)
make
.
top
.
equalToSuperview
()
.
offset
(
14
)
...
...
@@ -129,31 +56,23 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
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
make
.
left
.
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
)
}
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
)
compressionTipView
.
snp
.
makeConstraints
{
make
in
...
...
@@ -164,47 +83,6 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
let
tap
=
UITapGestureRecognizer
(
target
:
self
,
action
:
#selector(
compressClick
)
)
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
)
{
...
...
@@ -219,8 +97,20 @@ class HomeVideoDetailCustomHeaderView : UICollectionReusableView {
setUI
()
}
@objc
func
sortAction
(){
sortCallback
()
@objc
func
filterButtonAction
(){
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
=
{
...
...
PhoneManager/Class/Page/Home/View/ResourceFilterBoxView.swift
View file @
881bb320
...
...
@@ -118,10 +118,15 @@ class ResourceFilterBoxView : UIView {
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
()
formatter
.
locale
=
Locale
(
identifier
:
"en_US"
)
return
formatter
.
monthSymbols
[
month
]
return
formatter
.
monthSymbols
[
month
-
1
]
}
override
func
removeFromSuperview
()
{
...
...
@@ -240,6 +245,7 @@ class ResourceFilterBoxView : UIView {
components
.
year
=
year
components
.
month
=
month
components
.
day
=
1
// 设置为当月第一天
components
.
timeZone
=
TimeZone
(
identifier
:
"UTC"
)
// 使用公历日历
let
calendar
=
Calendar
(
identifier
:
.
gregorian
)
...
...
@@ -260,6 +266,7 @@ class ResourceFilterBoxView : UIView {
components
.
year
=
nextYear
components
.
month
=
nextMonth
components
.
day
=
1
components
.
timeZone
=
TimeZone
(
identifier
:
"UTC"
)
let
calendar
=
Calendar
(
identifier
:
.
gregorian
)
guard
let
nextMonthFirstDay
=
calendar
.
date
(
from
:
components
)
else
{
...
...
@@ -318,7 +325,6 @@ class ResourceFilterBoxView : UIView {
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
...
...
PhoneManager/Class/Page/Home/View/YearMonthPickerView.swift
View file @
881bb320
...
...
@@ -161,4 +161,13 @@ extension YearMonthPickerView: UIPickerViewDataSource, UIPickerViewDelegate {
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
())
}
}
PhoneManager/Class/Page/Home/View/cell/HomeInfoTableViewCell.swift
View file @
881bb320
...
...
@@ -24,7 +24,7 @@ class HomeInfoTableViewCell:UITableViewCell {
var
callBack
:
callBack
<
Any
>
=
{
text
in
}
var
saveKeepListFinishedCallback
:
(
)
->
Void
=
{
}
var
saveKeepListFinishedCallback
:
(
IndexPath
)
->
Void
=
{
index
in
}
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
...
...
@@ -119,7 +119,6 @@ class HomeInfoTableViewCell:UITableViewCell {
UIView
.
transition
(
with
:
collectionView
!
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
.
collectionView
?
.
reloadData
()
// self.reloadCollectionView()
},
completion
:
nil
)
}
}
...
...
@@ -224,7 +223,7 @@ extension HomeInfoTableViewCell:UICollectionViewDelegate,UICollectionViewDataSou
cell
.
keepAllCallBack
=
{
//存到保留列表
saveAllDataToKeepList
()
self
.
saveKeepListFinishedCallback
()
self
.
saveKeepListFinishedCallback
(
indexPath
)
}
// 存全部数据到保留列表
func
saveAllDataToKeepList
(){
...
...
PhoneManager/Class/Page/Public/Loading/PMLoadingView.swift
View file @
881bb320
...
...
@@ -21,7 +21,8 @@ class PMLoadingHUD{
func
show
(
_
title
:
String
=
"Deleting..."
,
_
subTitle
:
String
=
"Please wait on the screen. This might take several minutes."
){
disMiss
()
DispatchQueue
.
main
.
async
{
KEYWINDOW
()?
.
addSubview
(
self
.
loadingView
)
cWindow
?
.
addSubview
(
self
.
loadingView
)
cWindow
?
.
bringSubviewToFront
(
self
.
loadingView
)
self
.
loadingView
.
setTitleaAndSubTitle
(
title
:
title
,
subTitle
:
subTitle
)
self
.
loadingView
.
animationView
.
play
()
}
...
...
PhoneManager/Class/Page/Secret/PMShowImgVideoController.swift
View file @
881bb320
...
...
@@ -51,6 +51,8 @@ class PMShowImgVideoController: BaseViewController {
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
self
.
view
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.96
,
blue
:
0.99
,
alpha
:
1
)
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
...
...
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