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
873ecde3
Commit
873ecde3
authored
May 19, 2025
by
CZ1004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【优化】部分逻辑新增和bug修复
parent
78b769f8
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
435 additions
and
227 deletions
+435
-227
HomePhotosDetailViewController.swift
...Page/Home/Controller/HomePhotosDetailViewController.swift
+186
-60
HomeVideoDetailController.swift
...lass/Page/Home/Controller/HomeVideoDetailController.swift
+169
-47
HomeDetailDeleteView.swift
PhoneManager/Class/Page/Home/View/HomeDetailDeleteView.swift
+46
-0
HomeInfoView.swift
PhoneManager/Class/Page/Home/View/HomeInfoView.swift
+20
-2
PhotosRemoveBaseView.swift
PhoneManager/Class/Page/Home/View/PhotosRemoveBaseView.swift
+1
-0
TrashSubView.swift
PhoneManager/Class/Page/Home/View/TrashSubView.swift
+5
-1
YearMonthPickerView.swift
PhoneManager/Class/Page/Home/View/YearMonthPickerView.swift
+2
-2
TrashViewController.swift
...ger/Class/Page/Trash/Controller/TrashViewController.swift
+4
-56
TrashUIModel.swift
PhoneManager/Class/Page/Trash/Model/TrashUIModel.swift
+0
-3
TrashContenTitleCell.swift
...eManager/Class/Page/Trash/View/TrashContenTitleCell.swift
+1
-13
TrashContenView.swift
PhoneManager/Class/Page/Trash/View/TrashContenView.swift
+1
-33
TrashDefaultView.swift
PhoneManager/Class/Page/Trash/View/TrashDefaultView.swift
+0
-10
No files found.
PhoneManager/Class/Page/Home/Controller/HomePhotosDetailViewController.swift
View file @
873ecde3
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
import
Foundation
import
Foundation
import
Photos
import
Photos
import
SnapKit
class
HomePhotosDetailViewController
:
BaseViewController
{
class
HomePhotosDetailViewController
:
BaseViewController
{
private
var
headerHeight
:
CGFloat
=
98
private
var
headerHeight
:
CGFloat
=
98
...
@@ -15,7 +16,18 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -15,7 +16,18 @@ class HomePhotosDetailViewController : BaseViewController {
private
var
currentHeaderView
:
HomePhotosDetailCustomHeaderView
?
private
var
currentHeaderView
:
HomePhotosDetailCustomHeaderView
?
var
mediaType
:
PhotsFileType
?
private
var
deleteViewBottomConstraint
:
Constraint
?
var
mediaType
:
PhotsFileType
?
{
didSet
{
if
mediaType
==
PhotsFileType
.
videos
{
self
.
trashSubView
.
tipLabel
.
text
=
"The video in the trash can"
}
else
{
self
.
trashSubView
.
tipLabel
.
text
=
"The photo in the trash can"
}
}
}
var
imageCache
=
NSCache
<
NSString
,
UIImage
>
()
var
imageCache
=
NSCache
<
NSString
,
UIImage
>
()
...
@@ -30,12 +42,37 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -30,12 +42,37 @@ class HomePhotosDetailViewController : BaseViewController {
// 当前页面选中的
// 当前页面选中的
var
selectedModel
:
[
AssetModel
]
=
[]
{
var
selectedModel
:
[
AssetModel
]
=
[]
{
didSet
{
didSet
{
if
self
.
selectedModel
.
count
==
0
{
DispatchQueue
.
main
.
async
{
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
if
self
.
selectedModel
.
count
==
0
{
}
else
if
self
.
selectedModel
.
count
==
1
{
self
.
deleteButtonView
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
self
.
deleteButton
.
setTitle
(
"Delete
\(
self
.
selectedModel
.
count
)
Photo"
,
for
:
.
normal
)
UIView
.
animate
(
withDuration
:
0.1
)
{
}
else
{
// 更新约束
self
.
deleteButton
.
setTitle
(
"Delete
\(
selectedModel
.
count
)
Photos"
,
for
:
.
normal
)
self
.
deleteViewBottomConstraint
?
.
update
(
offset
:
-
safeHeight
+
78
)
}
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
safeHeight
)
}
else
if
self
.
selectedModel
.
count
==
1
{
self
.
deleteButtonView
.
deleteButton
.
setTitle
(
"Delete
\(
self
.
selectedModel
.
count
)
Photo"
,
for
:
.
normal
)
UIView
.
animate
(
withDuration
:
0.1
)
{
// 更新约束
self
.
deleteViewBottomConstraint
?
.
update
(
offset
:
-
safeHeight
)
}
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
78
-
safeHeight
)
}
else
{
self
.
deleteButtonView
.
deleteButton
.
setTitle
(
"Delete
\(
self
.
selectedModel
.
count
)
Photos"
,
for
:
.
normal
)
UIView
.
animate
(
withDuration
:
0.1
)
{
// 更新约束
self
.
deleteViewBottomConstraint
?
.
update
(
offset
:
-
safeHeight
)
}
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
78
-
safeHeight
)
}
if
self
.
selectedModel
.
count
>
0
{
self
.
deleteButtonView
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
}
else
{
self
.
deleteButtonView
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButtonView
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
}
}
}
}
}
}
}
...
@@ -63,7 +100,7 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -63,7 +100,7 @@ class HomePhotosDetailViewController : BaseViewController {
let
layout
=
WaterfallMutiSectionFlowLayout
()
let
layout
=
WaterfallMutiSectionFlowLayout
()
layout
.
delegate
=
self
layout
.
delegate
=
self
let
sview
:
UICollectionView
=
UICollectionView
.
init
(
frame
:
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
104
),
collectionViewLayout
:
layout
)
let
sview
:
UICollectionView
=
UICollectionView
.
init
(
frame
:
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
safeHeight
),
collectionViewLayout
:
layout
)
sview
.
register
(
HomePhotosDetailCollectionCell
.
self
,
forCellWithReuseIdentifier
:
"HomePhotosDetailCollectionCell"
)
sview
.
register
(
HomePhotosDetailCollectionCell
.
self
,
forCellWithReuseIdentifier
:
"HomePhotosDetailCollectionCell"
)
sview
.
register
(
HomePhotosDetailCustomHeaderView
.
self
,
forSupplementaryViewOfKind
:
UICollectionView
.
elementKindSectionHeader
,
withReuseIdentifier
:
"HomePhotosDetailCustomHeaderView"
)
sview
.
register
(
HomePhotosDetailCustomHeaderView
.
self
,
forSupplementaryViewOfKind
:
UICollectionView
.
elementKindSectionHeader
,
withReuseIdentifier
:
"HomePhotosDetailCustomHeaderView"
)
...
@@ -80,18 +117,20 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -80,18 +117,20 @@ class HomePhotosDetailViewController : BaseViewController {
}()
}()
lazy
var
deleteButton
:
UIButton
=
{
lazy
var
deleteButtonView
:
HomeDetailDeleteView
=
{
let
view
=
UIButton
()
let
view
=
HomeDetailDeleteView
()
view
.
setTitle
(
"Delete"
,
for
:
UIControl
.
State
.
normal
)
view
.
addTopShadow
()
view
.
setTitleColor
(
.
white
,
for
:
.
normal
)
view
.
clipsToBounds
=
true
view
.
layer
.
cornerRadius
=
23
view
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
view
.
addTarget
(
self
,
action
:
#selector(
deleteButtonAction
)
,
for
:
.
touchUpInside
)
return
view
return
view
}()
}()
lazy
var
trashSubView
:
TrashSubView
=
{
let
view
=
TrashSubView
()
view
.
backgroundColor
=
.
white
view
.
isHidden
=
true
return
view
}()
func
setUI
(){
func
setUI
(){
...
@@ -113,17 +152,17 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -113,17 +152,17 @@ class HomePhotosDetailViewController : BaseViewController {
self
.
selectedModel
.
removeAll
()
self
.
selectedModel
.
removeAll
()
}
}
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
.
collectionView
.
reloadData
()
self
.
collectionView
.
reloadData
()
},
completion
:
nil
)
},
completion
:
nil
)
if
self
.
selectedModel
.
count
>
0
{
if
self
.
selectedModel
.
count
>
0
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
}
else
{
}
else
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
self
.
deleteButton
View
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
}
}
}
}
...
@@ -134,17 +173,17 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -134,17 +173,17 @@ class HomePhotosDetailViewController : BaseViewController {
self
.
selectedModel
.
removeAll
()
self
.
selectedModel
.
removeAll
()
}
}
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
.
collectionView
.
reloadData
()
self
.
collectionView
.
reloadData
()
},
completion
:
nil
)
},
completion
:
nil
)
if
self
.
selectedModel
.
count
>
0
{
if
self
.
selectedModel
.
count
>
0
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
}
else
{
}
else
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
self
.
deleteButton
View
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
}
}
}
}
}
}
...
@@ -153,12 +192,12 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -153,12 +192,12 @@ class HomePhotosDetailViewController : BaseViewController {
self
.
view
.
insertSubview
(
collectionView
,
at
:
0
)
self
.
view
.
insertSubview
(
collectionView
,
at
:
0
)
self
.
view
.
addSubview
(
self
.
deleteButton
)
self
.
view
.
addSubview
(
self
.
deleteButtonView
)
self
.
deleteButton
.
snp
.
makeConstraints
{
make
in
self
.
deleteButtonView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
self
.
collectionView
.
snp
.
bottom
)
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
46
)
make
.
height
.
equalTo
(
78
)
self
.
deleteViewBottomConstraint
=
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
safeHeight
+
78
)
.
constraint
}
}
self
.
view
.
addSubview
(
self
.
defaultImageView
)
self
.
view
.
addSubview
(
self
.
defaultImageView
)
...
@@ -174,9 +213,34 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -174,9 +213,34 @@ class HomePhotosDetailViewController : BaseViewController {
make
.
top
.
equalTo
(
self
.
defaultImageView
.
snp
.
bottom
)
.
offset
(
-
30
)
make
.
top
.
equalTo
(
self
.
defaultImageView
.
snp
.
bottom
)
.
offset
(
-
30
)
make
.
centerX
.
equalToSuperview
()
make
.
centerX
.
equalToSuperview
()
}
}
setDefaultPage
()
self
.
setDefaultPage
()
}
/// 是否添加垃圾桶数据
func
addTrashView
(){
DispatchQueue
.
main
.
async
{
self
.
trashSubView
.
removeFromSuperview
()
self
.
view
.
addSubview
(
self
.
trashSubView
)
self
.
trashSubView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
safeHeight
)
make
.
height
.
equalTo
(
78
)
}
// 判断垃圾桶有没有数据
let
array
=
TrashDataManager
.
getCurrentMediaTypeTrashData
(
mediaType
:
self
.
mediaType
==
PhotsFileType
.
Other
?
TrashTypeEnum
.
other
:
TrashTypeEnum
.
shot
)
self
.
trashSubView
.
resourceCountlabel
.
text
=
String
(
array
.
count
)
self
.
trashSubView
.
isHidden
=
array
.
count
<=
0
self
.
deleteButtonView
.
isHidden
=
array
.
count
>
0
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
array
.
count
>
0
// 改变collection的位置
if
array
.
count
>
0
{
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
78
-
safeHeight
)
}
else
{
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
safeHeight
)
}
}
}
}
...
@@ -191,16 +255,16 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -191,16 +255,16 @@ class HomePhotosDetailViewController : BaseViewController {
self
.
defaultTipLabel
.
isHidden
=
false
self
.
defaultTipLabel
.
isHidden
=
false
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
true
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
true
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
true
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
true
self
.
deleteButton
.
isHidden
=
true
self
.
deleteButton
View
.
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
?
.
btnView
.
isHidden
=
false
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
false
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
false
self
.
deleteButton
.
isHidden
=
false
self
.
deleteButton
View
.
isHidden
=
false
}
}
}
}
self
.
addTrashView
()
}
}
}
}
...
@@ -212,6 +276,33 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -212,6 +276,33 @@ class HomePhotosDetailViewController : BaseViewController {
setUI
()
setUI
()
showTipsVC
()
showTipsVC
()
self
.
deleteButtonView
.
deleteCallBack
=
{
self
.
deleteButtonAction
()
}
self
.
trashSubView
.
presentTashDetailViewClickCallBack
=
{[
weak
self
]
in
guard
let
self
else
{
return
}
// 进入垃圾桶详情页面
DispatchQueue
.
main
.
async
{
let
vc
:
TrashViewController
=
TrashViewController
()
vc
.
currentPage
=
self
.
mediaType
==
PhotsFileType
.
Other
?
2
:
3
vc
.
dissmisCallBack
=
{
self
.
addTrashView
()
}
self
.
present
(
vc
,
animated
:
true
)
}
}
self
.
trashSubView
.
clearTashDataCallBack
=
{[
weak
self
]
in
guard
let
self
else
{
return
}
// 清除垃圾桶数据
TrashDataManager
.
clearTrashData
(
mediaType
:
self
.
mediaType
==
PhotsFileType
.
Other
?
TrashTypeEnum
.
other
:
TrashTypeEnum
.
shot
)
{[
weak
self
]
in
guard
let
self
else
{
return
}
self
.
addTrashView
()
}
}
}
}
func
showTipsVC
(){
func
showTipsVC
(){
...
@@ -235,7 +326,7 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -235,7 +326,7 @@ class HomePhotosDetailViewController : BaseViewController {
}
}
TipsManager
.
saveLoadStatus
(
mediaType
)
TipsManager
.
saveLoadStatus
(
mediaType
)
}
}
// MARK:系统方法
// MARK:系统方法
...
@@ -256,6 +347,7 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -256,6 +347,7 @@ class HomePhotosDetailViewController : BaseViewController {
self
.
collectionView
.
reloadData
()
self
.
collectionView
.
reloadData
()
}
}
}
}
addTrashView
()
}
}
...
@@ -265,7 +357,7 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -265,7 +357,7 @@ class HomePhotosDetailViewController : BaseViewController {
/// 获取当前页面数据
/// 获取当前页面数据
/// - Parameter completed: 完成回调
/// - Parameter completed: 完成回调
func
getCurrentPageData
(
completed
:
@escaping
()
->
Void
){
func
getCurrentPageData
(
completed
:
@escaping
()
->
Void
){
PhotoManager
.
shared
.
reloadTrashAndKeep
()
PhotoManager
.
shared
.
reloadTrashAndKeep
()
var
data
=
self
.
mediaType
==
.
Other
?
PhotoManager
.
shared
.
filterOtherModels
:
PhotoManager
.
shared
.
filterScreenShotModels
var
data
=
self
.
mediaType
==
.
Other
?
PhotoManager
.
shared
.
filterOtherModels
:
PhotoManager
.
shared
.
filterScreenShotModels
...
@@ -371,15 +463,54 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -371,15 +463,54 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
cell
.
cellCallBack
=
{[
weak
self
]
ident
,
order
in
cell
.
cellCallBack
=
{[
weak
self
]
ident
,
order
in
guard
let
self
else
{
return
}
guard
let
self
else
{
return
}
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
// 点击之后跳转详情页面
// 这里还需要判断下当前cell 是不是被选中了,选中了就不跳转左滑右滑动页面
if
self
.
mediaType
==
.
screenshots
{
if
self
.
videoDetailNavView
?
.
startSelectButton
.
isSelected
==
false
{
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
shot
)
// 点击之后跳转详情页面
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
if
self
.
mediaType
==
.
screenshots
{
}
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
shot
)
if
self
.
mediaType
==
.
Other
{
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
other
)
}
if
self
.
mediaType
==
.
Other
{
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
other
)
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
else
{
// 跳转PMSHow页面
// 点击之后跳转详情页面
let
vc
=
PMShowImgVideoController
()
vc
.
state
=
.
similarPhotos
vc
.
currentIdx
=
0
vc
.
oldPageIndexPath
=
indexPath
let
dataSource
=
ImageSeletedCollectionItem
()
dataSource
.
isSeleted
=
cell
.
choose
dataSource
.
id
=
ident
// 获取image
dataSource
.
image
=
PhotoAndVideoMananger
.
mananger
.
getImageFromAssetID
(
id
:
ident
.
localIdentifier
)
vc
.
homeDataSource
=
[
dataSource
]
vc
.
backOrgPageCallBack
=
{
index
,
data
in
if
let
data
=
data
{
if
let
item
=
data
.
first
{
if
let
selected
=
item
.
isSeleted
{
if
let
index
=
index
{
if
selected
==
true
{
self
.
selectedModel
.
append
(
self
.
resourceData
[
index
.
row
])
}
else
{
self
.
selectedModel
.
removeAll
(
where
:
{
$0
.
localIdentifier
==
self
.
resourceData
[
index
.
row
]
.
localIdentifier
})
}
DispatchQueue
.
main
.
async
{
if
let
tempCell
=
collectionView
.
cellForItem
(
at
:
index
)
as?
HomePhotosDetailCollectionCell
{
tempCell
.
choose
=
selected
}
}
}
}
}
}
}
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
}
}
}
}
cell
.
clickCallBack
=
{[
weak
self
]
click
,
order
in
cell
.
clickCallBack
=
{[
weak
self
]
click
,
order
in
...
@@ -389,14 +520,6 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -389,14 +520,6 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
else
{
}
else
{
self
.
selectedModel
.
removeAll
{
$0
.
localIdentifier
==
self
.
resourceData
[
order
]
.
localIdentifier
}
self
.
selectedModel
.
removeAll
{
$0
.
localIdentifier
==
self
.
resourceData
[
order
]
.
localIdentifier
}
}
}
DispatchQueue
.
main
.
async
{
if
self
.
selectedModel
.
count
>
0
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
}
else
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
}
}
}
}
return
cell
return
cell
...
@@ -525,7 +648,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -525,7 +648,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
}
@objc
func
deleteButtonAction
(){
func
deleteButtonAction
(){
if
selectedModel
.
count
<=
0
{
if
selectedModel
.
count
<=
0
{
return
return
}
}
...
@@ -631,9 +754,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -631,9 +754,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
else
{
}
else
{
self
.
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
self
.
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
}
}
}
}
/// 弹出广告
/// 弹出广告
...
@@ -664,7 +787,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -664,7 +787,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
self
.
showDeleteSuccess
(
fileCount
:
allIdent
.
count
,
fileSize
:
fileSize
)
self
.
showDeleteSuccess
(
fileCount
:
allIdent
.
count
,
fileSize
:
fileSize
)
self
.
updateCurrentPageWhenDeleteAny
()
self
.
updateCurrentPageWhenDeleteAny
()
}
}
}
else
{
}
else
{
PMLoadingHUD
.
share
.
disMiss
()
PMLoadingHUD
.
share
.
disMiss
()
if
let
error
=
error
{
if
let
error
=
error
{
...
@@ -672,7 +795,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -672,7 +795,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
}
}
}
}
}
}
}
...
@@ -712,7 +835,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -712,7 +835,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
}
// 清理下缓存数据
// 清理下缓存数据
// PhotoDataManager.manager.removeDataWhenDeleteInPage(data: self.selectedModel)
// PhotoDataManager.manager.removeDataWhenDeleteInPage(data: self.selectedModel)
PhotoManager
.
shared
.
removeDataWhenDeleteInPage
(
data
:
self
.
selectedModel
)
{
PhotoManager
.
shared
.
removeDataWhenDeleteInPage
(
data
:
self
.
selectedModel
)
{
//删除完成刷新数据
//删除完成刷新数据
}
}
...
@@ -720,8 +843,8 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -720,8 +843,8 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
// 删除完成之后,移除下当前选择的数据
// 删除完成之后,移除下当前选择的数据
self
.
selectedModel
.
removeAll
()
self
.
selectedModel
.
removeAll
()
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
self
.
deleteButton
View
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
.
collectionView
.
reloadSections
(
IndexSet
(
integer
:
0
))
self
.
collectionView
.
reloadSections
(
IndexSet
(
integer
:
0
))
...
@@ -730,4 +853,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -730,4 +853,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
setDefaultPage
()
setDefaultPage
()
}
}
}
}
PhoneManager/Class/Page/Home/Controller/HomeVideoDetailController.swift
View file @
873ecde3
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
import
Foundation
import
Foundation
import
Photos
import
Photos
import
SnapKit
class
HomeVideoDetailController
:
BaseViewController
{
class
HomeVideoDetailController
:
BaseViewController
{
...
@@ -14,6 +15,8 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -14,6 +15,8 @@ class HomeVideoDetailController :BaseViewController {
private
var
currentHeaderView
:
HomeVideoDetailCustomHeaderView
?
private
var
currentHeaderView
:
HomeVideoDetailCustomHeaderView
?
private
var
deleteViewBottomConstraint
:
Constraint
?
@MainActor
required
init
?(
coder
:
NSCoder
)
{
@MainActor
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
fatalError
(
"init(coder:) has not been implemented"
)
}
}
...
@@ -32,17 +35,37 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -32,17 +35,37 @@ class HomeVideoDetailController :BaseViewController {
// 当前页面选中的
// 当前页面选中的
var
selectedModel
:
[
AssetModel
]
=
[]
{
var
selectedModel
:
[
AssetModel
]
=
[]
{
didSet
{
didSet
{
DispatchQueue
.
main
.
async
{
[
self
]
in
DispatchQueue
.
main
.
async
{
if
self
.
selectedModel
.
count
!=
0
{
if
self
.
selectedModel
.
count
==
0
{
if
self
.
selectedModel
.
count
==
1
{
self
.
deleteButtonView
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
UIView
.
animate
(
withDuration
:
0.1
)
{
}
else
if
self
.
selectedModel
.
count
==
1
{
// 更新约束
self
.
deleteButton
.
setTitle
(
"Delete
\(
self
.
selectedModel
.
count
)
Video"
,
for
:
.
normal
)
self
.
deleteViewBottomConstraint
?
.
update
(
offset
:
-
safeHeight
+
78
)
}
else
{
}
self
.
deleteButton
.
setTitle
(
"Delete
\(
selectedModel
.
count
)
Videos"
,
for
:
.
normal
)
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
safeHeight
)
}
else
if
self
.
selectedModel
.
count
==
1
{
self
.
deleteButtonView
.
deleteButton
.
setTitle
(
"Delete
\(
self
.
selectedModel
.
count
)
Video"
,
for
:
.
normal
)
UIView
.
animate
(
withDuration
:
0.1
)
{
// 更新约束
self
.
deleteViewBottomConstraint
?
.
update
(
offset
:
-
safeHeight
)
}
}
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
78
-
safeHeight
)
}
else
{
self
.
deleteButtonView
.
deleteButton
.
setTitle
(
"Delete
\(
self
.
selectedModel
.
count
)
Videos"
,
for
:
.
normal
)
UIView
.
animate
(
withDuration
:
0.1
)
{
// 更新约束
self
.
deleteViewBottomConstraint
?
.
update
(
offset
:
-
safeHeight
)
}
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
78
-
safeHeight
)
}
if
self
.
selectedModel
.
count
>
0
{
self
.
deleteButtonView
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
}
else
{
self
.
deleteButtonView
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButtonView
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
}
}
self
.
collectionView
.
collectionViewLayout
.
invalidateLayout
()
}
}
}
}
}
}
...
@@ -52,7 +75,7 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -52,7 +75,7 @@ class HomeVideoDetailController :BaseViewController {
let
layout
=
WaterfallMutiSectionFlowLayout
()
let
layout
=
WaterfallMutiSectionFlowLayout
()
layout
.
delegate
=
self
layout
.
delegate
=
self
let
sview
:
UICollectionView
=
UICollectionView
.
init
(
frame
:
CGRect
(
x
:
marginLR
,
y
:
s
tatusBarHeight
+
44
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
(
statusBarHeight
+
44
)
-
102
),
collectionViewLayout
:
layout
)
let
sview
:
UICollectionView
=
UICollectionView
.
init
(
frame
:
CGRect
(
x
:
marginLR
,
y
:
s
elf
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
safeHeight
),
collectionViewLayout
:
layout
)
sview
.
register
(
HomeVideoDetailCell
.
self
,
forCellWithReuseIdentifier
:
"HomeVideoDetailCell"
)
sview
.
register
(
HomeVideoDetailCell
.
self
,
forCellWithReuseIdentifier
:
"HomeVideoDetailCell"
)
sview
.
register
(
HomeVideoDetailCustomHeaderView
.
self
,
forSupplementaryViewOfKind
:
UICollectionView
.
elementKindSectionHeader
,
withReuseIdentifier
:
"HomeVideoDetailCustomHeaderView"
)
sview
.
register
(
HomeVideoDetailCustomHeaderView
.
self
,
forSupplementaryViewOfKind
:
UICollectionView
.
elementKindSectionHeader
,
withReuseIdentifier
:
"HomeVideoDetailCustomHeaderView"
)
...
@@ -69,14 +92,18 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -69,14 +92,18 @@ class HomeVideoDetailController :BaseViewController {
}()
}()
lazy
var
deleteButton
:
UIButton
=
{
lazy
var
deleteButtonView
:
HomeDetailDeleteView
=
{
let
view
=
UIButton
()
let
view
=
HomeDetailDeleteView
()
view
.
setTitle
(
"Delete"
,
for
:
UIControl
.
State
.
normal
)
view
.
addTopShadow
()
view
.
setTitleColor
(
.
white
,
for
:
.
normal
)
return
view
view
.
clipsToBounds
=
true
}()
view
.
layer
.
cornerRadius
=
23
view
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
view
.
addTarget
(
self
,
action
:
#selector(
deleteButtonAction
)
,
for
:
.
touchUpInside
)
lazy
var
trashSubView
:
TrashSubView
=
{
let
view
=
TrashSubView
()
view
.
backgroundColor
=
.
white
view
.
tipLabel
.
text
=
"The video in the trash can"
view
.
isHidden
=
true
return
view
return
view
}()
}()
...
@@ -165,11 +192,11 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -165,11 +192,11 @@ class HomeVideoDetailController :BaseViewController {
self
.
collectionView
.
reloadData
()
self
.
collectionView
.
reloadData
()
},
completion
:
nil
)
},
completion
:
nil
)
if
self
.
selectedModel
.
count
>
0
{
if
self
.
selectedModel
.
count
>
0
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
}
else
{
}
else
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
self
.
deleteButton
View
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
}
}
}
}
...
@@ -181,17 +208,17 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -181,17 +208,17 @@ class HomeVideoDetailController :BaseViewController {
self
.
selectedModel
.
removeAll
()
self
.
selectedModel
.
removeAll
()
}
}
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
UIView
.
transition
(
with
:
self
.
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
.
collectionView
.
reloadData
()
self
.
collectionView
.
reloadData
()
},
completion
:
nil
)
},
completion
:
nil
)
if
self
.
selectedModel
.
count
>
0
{
if
self
.
selectedModel
.
count
>
0
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
}
else
{
}
else
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
self
.
deleteButton
View
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
}
}
}
}
}
}
...
@@ -199,12 +226,12 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -199,12 +226,12 @@ class HomeVideoDetailController :BaseViewController {
self
.
view
.
insertSubview
(
collectionView
,
at
:
0
)
self
.
view
.
insertSubview
(
collectionView
,
at
:
0
)
self
.
view
.
addSubview
(
self
.
deleteButton
)
self
.
view
.
addSubview
(
self
.
deleteButtonView
)
self
.
deleteButton
.
snp
.
makeConstraints
{
make
in
self
.
deleteButtonView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
self
.
collectionView
.
snp
.
bottom
)
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
46
)
make
.
height
.
equalTo
(
78
)
self
.
deleteViewBottomConstraint
=
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
safeHeight
+
78
)
.
constraint
}
}
self
.
view
.
addSubview
(
self
.
defaultImageView
)
self
.
view
.
addSubview
(
self
.
defaultImageView
)
self
.
defaultImageView
.
snp
.
makeConstraints
{
make
in
self
.
defaultImageView
.
snp
.
makeConstraints
{
make
in
...
@@ -230,8 +257,59 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -230,8 +257,59 @@ class HomeVideoDetailController :BaseViewController {
setUI
()
setUI
()
showTipsVC
()
showTipsVC
()
self
.
deleteButtonView
.
deleteCallBack
=
{
self
.
deleteButtonAction
()
}
self
.
trashSubView
.
presentTashDetailViewClickCallBack
=
{[
weak
self
]
in
guard
let
self
else
{
return
}
// 进入垃圾桶详情页面
DispatchQueue
.
main
.
async
{
let
vc
:
TrashViewController
=
TrashViewController
()
vc
.
currentPage
=
1
vc
.
dissmisCallBack
=
{
self
.
addTrashView
()
}
self
.
present
(
vc
,
animated
:
true
)
}
}
self
.
trashSubView
.
clearTashDataCallBack
=
{[
weak
self
]
in
guard
let
self
else
{
return
}
// 清除垃圾桶数据
TrashDataManager
.
clearTrashData
(
mediaType
:
TrashTypeEnum
.
video
)
{[
weak
self
]
in
guard
let
self
else
{
return
}
self
.
addTrashView
()
}
}
}
}
/// 是否添加垃圾桶数据
func
addTrashView
(){
DispatchQueue
.
main
.
async
{
self
.
trashSubView
.
removeFromSuperview
()
self
.
view
.
addSubview
(
self
.
trashSubView
)
self
.
trashSubView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
safeHeight
)
make
.
height
.
equalTo
(
78
)
}
// 判断垃圾桶有没有数据
let
array
=
TrashDataManager
.
getCurrentMediaTypeTrashData
(
mediaType
:
TrashTypeEnum
.
video
)
self
.
trashSubView
.
resourceCountlabel
.
text
=
String
(
array
.
count
)
self
.
trashSubView
.
isHidden
=
array
.
count
<=
0
self
.
deleteButtonView
.
isHidden
=
array
.
count
>
0
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
array
.
count
>
0
// 改变collection的位置
if
array
.
count
>
0
{
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
78
-
safeHeight
)
}
else
{
self
.
collectionView
.
frame
=
CGRect
(
x
:
marginLR
,
y
:
self
.
videoDetailNavView
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
videoDetailNavView
!.
height
-
safeHeight
)
}
}
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
super
.
viewWillAppear
(
animated
)
// 重新设置下数据源
// 重新设置下数据源
...
@@ -240,6 +318,7 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -240,6 +318,7 @@ class HomeVideoDetailController :BaseViewController {
self
.
collectionView
.
reloadData
()
self
.
collectionView
.
reloadData
()
}
}
}
}
addTrashView
()
}
}
func
showTipsVC
(){
func
showTipsVC
(){
...
@@ -294,15 +373,6 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -294,15 +373,6 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
else
{
}
else
{
self
.
selectedModel
.
removeAll
{
$0
.
localIdentifier
==
self
.
resourceData
[
order
]
.
localIdentifier
}
self
.
selectedModel
.
removeAll
{
$0
.
localIdentifier
==
self
.
resourceData
[
order
]
.
localIdentifier
}
}
}
DispatchQueue
.
main
.
async
{
if
self
.
selectedModel
.
count
>
0
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
}
else
{
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
}
}
}
}
cell
.
cellCallBack
=
{[
weak
self
]
ident
,
order
in
cell
.
cellCallBack
=
{[
weak
self
]
ident
,
order
in
guard
let
self
else
{
return
}
guard
let
self
else
{
return
}
...
@@ -310,8 +380,59 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -310,8 +380,59 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
// 获取视频的图片
// 获取视频的图片
PhotoAndVideoMananger
.
mananger
.
getVideoImageByIdent
(
ident
:
ident
)
{
image
in
PhotoAndVideoMananger
.
mananger
.
getVideoImageByIdent
(
ident
:
ident
)
{
image
in
// 点击之后跳转详情页面
// 点击之后跳转详情页面
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
video
)
if
self
.
videoDetailNavView
?
.
startSelectButton
.
isSelected
==
false
{
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
let
vc
=
PhotoRemoveViewController
(
data
:
self
.
resourceData
,
currentIndex
:
indexPath
.
row
,
mediaType
:
.
video
)
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
else
{
let
vc
=
PMShowImgVideoController
()
vc
.
state
=
.
similarVideos
vc
.
currentIdx
=
0
let
dataSource
=
ImageSeletedCollectionItem
()
dataSource
.
isSeleted
=
cell
.
choose
dataSource
.
id
=
ident
dataSource
.
image
=
image
// 表示这个是视频
vc
.
homeDataSource
=
[
dataSource
]
vc
.
backOrgPageCallBack
=
{
index
,
data
in
if
let
data
=
data
{
if
let
item
=
data
.
first
{
if
let
selected
=
item
.
isSeleted
{
if
let
index
=
index
{
if
selected
==
true
{
self
.
selectedModel
.
append
(
self
.
resourceData
[
index
.
row
])
}
else
{
self
.
selectedModel
.
removeAll
(
where
:
{
$0
.
localIdentifier
==
self
.
resourceData
[
index
.
row
]
.
localIdentifier
})
}
DispatchQueue
.
main
.
async
{
if
let
tempCell
=
collectionView
.
cellForItem
(
at
:
index
)
as?
HomePhotosDetailCollectionCell
{
tempCell
.
choose
=
selected
}
}
}
}
}
}
}
vc
.
getVideoURLFromLocalIdentifier
(
localIdentifier
:
ident
.
localIdentifier
)
{
url
,
error
in
if
url
!=
nil
{
DispatchQueue
.
main
.
async
{
vc
.
url
=
url
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
else
{
let
alert
=
UIAlertController
(
title
:
nil
,
message
:
"ICloud video cannot be viewed"
,
preferredStyle
:
.
alert
)
self
.
present
(
alert
,
animated
:
true
,
completion
:
nil
)
// 2 秒后关闭弹窗
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
1
)
{
alert
.
dismiss
(
animated
:
true
,
completion
:
nil
)
}
}
}
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
errorHandler
:
{
}
errorHandler
:
{
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
let
alert
=
UIAlertController
(
title
:
nil
,
message
:
"Get Video image failure"
,
preferredStyle
:
.
alert
)
let
alert
=
UIAlertController
(
title
:
nil
,
message
:
"Get Video image failure"
,
preferredStyle
:
.
alert
)
...
@@ -402,7 +523,7 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -402,7 +523,7 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
}
@objc
func
deleteButtonAction
(){
func
deleteButtonAction
(){
if
selectedModel
.
count
<=
0
{
if
selectedModel
.
count
<=
0
{
return
return
...
@@ -545,7 +666,7 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -545,7 +666,7 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
SystemCommentManager
.
showCommentPage
()
SystemCommentManager
.
showCommentPage
()
if
isAfterAdv
==
false
{
if
isAfterAdv
==
false
{
self
.
updateFreeTimes
()
self
.
updateFreeTimes
()
}
}
self
.
showDeleteSuccess
(
fileCount
:
self
.
selectedModel
.
count
,
fileSize
:
fileSize
)
self
.
showDeleteSuccess
(
fileCount
:
self
.
selectedModel
.
count
,
fileSize
:
fileSize
)
// 移除当前总数据源的数据
// 移除当前总数据源的数据
...
@@ -582,15 +703,16 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -582,15 +703,16 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
self
.
defaultTipLabel
.
isHidden
=
false
self
.
defaultTipLabel
.
isHidden
=
false
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
true
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
true
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
true
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
true
self
.
deleteButton
.
isHidden
=
true
self
.
deleteButton
View
.
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
?
.
btnView
.
isHidden
=
false
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
false
self
.
videoDetailNavView
?
.
startSelectButton
.
isHidden
=
false
self
.
deleteButton
.
isHidden
=
false
self
.
deleteButton
View
.
deleteButton
.
isHidden
=
false
}
}
}
}
self
.
addTrashView
()
}
}
}
}
...
@@ -608,8 +730,8 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -608,8 +730,8 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
// 更新页面
// 更新页面
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
self
.
selectedModel
.
removeAll
()
self
.
selectedModel
.
removeAll
()
self
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
View
.
deleteButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
self
.
deleteButton
View
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
if
self
.
currentHeaderView
!=
nil
{
if
self
.
currentHeaderView
!=
nil
{
self
.
currentHeaderView
?
.
sizeLabel
.
text
=
"
\(
self
.
resourceData
.
count
)
Videos"
self
.
currentHeaderView
?
.
sizeLabel
.
text
=
"
\(
self
.
resourceData
.
count
)
Videos"
...
...
PhoneManager/Class/Page/Home/View/HomeDetailDeleteView.swift
0 → 100644
View file @
873ecde3
//
// HomeDetailDeleteView.swift
// PhoneManager
//
// Created by edy on 2025/5/19.
//
import
UIKit
class
HomeDetailDeleteView
:
UIView
{
var
deleteCallBack
:(()
->
Void
)
=
{}
lazy
var
deleteButton
:
UIButton
=
{
let
view
=
UIButton
()
view
.
setTitle
(
"Delete"
,
for
:
UIControl
.
State
.
normal
)
view
.
setTitleColor
(
.
white
,
for
:
.
normal
)
view
.
clipsToBounds
=
true
view
.
layer
.
cornerRadius
=
23
view
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
view
.
addTarget
(
self
,
action
:
#selector(
deleteButtonAction
)
,
for
:
.
touchUpInside
)
return
view
}()
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
self
.
backgroundColor
=
.
white
self
.
addSubview
(
self
.
deleteButton
)
self
.
deleteButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
46
)
}
}
@objc
func
deleteButtonAction
(){
self
.
deleteCallBack
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
}
PhoneManager/Class/Page/Home/View/HomeInfoView.swift
View file @
873ecde3
...
@@ -44,6 +44,7 @@ class HomeInfoView :UIView {
...
@@ -44,6 +44,7 @@ class HomeInfoView :UIView {
lazy
var
headerView
:
HomeInfoTitleView
=
{
lazy
var
headerView
:
HomeInfoTitleView
=
{
let
sview
:
HomeInfoTitleView
=
HomeInfoTitleView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
width
,
height
:
84
))
let
sview
:
HomeInfoTitleView
=
HomeInfoTitleView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
width
,
height
:
84
))
sview
.
titleLabel
.
text
=
self
.
titleText
sview
.
titleLabel
.
text
=
self
.
titleText
sview
.
type
=
self
.
type
sview
.
filterButton
.
isHidden
=
self
.
type
!=
.
similar
&&
self
.
type
!=
.
SimilarVideos
sview
.
filterButton
.
isHidden
=
self
.
type
!=
.
similar
&&
self
.
type
!=
.
SimilarVideos
return
sview
return
sview
}()
}()
...
@@ -354,9 +355,19 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
...
@@ -354,9 +355,19 @@ extension HomeInfoView:UITableViewDataSource,UITableViewDelegate {
guard
let
indexPath
=
tableView
.
indexPathsForVisibleRows
?
.
first
else
{
return
}
guard
let
indexPath
=
tableView
.
indexPathsForVisibleRows
?
.
first
else
{
return
}
let
nextRow
=
self
.
isDragEnd
==
true
?
indexPath
.
row
+
1
:
indexPath
.
row
+
2
// let nextRow = self.isDragEnd == true ? indexPath.row + 1 : indexPath.row + 2
let
nextRow
=
indexPath
.
row
+
2
let
nextSection
=
indexPath
.
section
let
nextSection
=
indexPath
.
section
// 获取最后一个cell 看看是不是存在
guard
let
lastIndexPath
=
tableView
.
indexPathsForVisibleRows
?
.
last
else
{
return
}
let
lastNextRow
=
lastIndexPath
.
row
+
1
guard
lastNextRow
<
tableView
.
numberOfRows
(
inSection
:
nextSection
)
else
{
// 滚动到最底部
tableView
.
scrollToRow
(
at
:
lastIndexPath
,
at
:
.
bottom
,
animated
:
true
)
return
}
// 检查下一行是否存在
// 检查下一行是否存在
guard
nextRow
<
tableView
.
numberOfRows
(
inSection
:
nextSection
)
else
{
return
}
guard
nextRow
<
tableView
.
numberOfRows
(
inSection
:
nextSection
)
else
{
return
}
...
@@ -498,6 +509,8 @@ class HomeInfoTitleView:UIView {
...
@@ -498,6 +509,8 @@ class HomeInfoTitleView:UIView {
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
var
sortViewSubmitCallBack
:
(
ResourceFilterBoxModel
)
->
Void
=
{
model
in
}
var
type
:
PhotsFileType
?
lazy
var
titleLabel
:
UILabel
=
{
lazy
var
titleLabel
:
UILabel
=
{
let
sview
:
UILabel
=
UILabel
()
let
sview
:
UILabel
=
UILabel
()
...
@@ -575,7 +588,12 @@ class HomeInfoTitleView:UIView {
...
@@ -575,7 +588,12 @@ class HomeInfoTitleView:UIView {
let
allNumberStr
=
"
\(
allNumber
)
"
let
allNumberStr
=
"
\(
allNumber
)
"
let
seletedCountStr
=
"
\(
seletedCount
)
"
let
seletedCountStr
=
"
\(
seletedCount
)
"
let
fullText
=
allNumberStr
+
" photos ·
\(
seletedCountStr
)
selected"
var
fullText
=
"0 photos · 0 selected"
if
self
.
type
==
.
SimilarVideos
{
fullText
=
allNumberStr
+
" videos ·
\(
seletedCountStr
)
selected"
}
else
{
fullText
=
allNumberStr
+
" photos ·
\(
seletedCountStr
)
selected"
}
let
attributedString2
=
NSMutableAttributedString
(
string
:
fullText
,
attributes
:
[
let
attributedString2
=
NSMutableAttributedString
(
string
:
fullText
,
attributes
:
[
...
...
PhoneManager/Class/Page/Home/View/PhotosRemoveBaseView.swift
View file @
873ecde3
...
@@ -56,6 +56,7 @@ class PhotosRemoveBaseView: UIView {
...
@@ -56,6 +56,7 @@ class PhotosRemoveBaseView: UIView {
self
.
imageView
.
isUserInteractionEnabled
=
true
self
.
imageView
.
isUserInteractionEnabled
=
true
let
tap
=
UITapGestureRecognizer
()
let
tap
=
UITapGestureRecognizer
()
tap
.
addTarget
(
self
,
action
:
#selector(
showDeatail
)
)
tap
.
addTarget
(
self
,
action
:
#selector(
showDeatail
)
)
imageView
.
backgroundColor
=
.
white
self
.
imageView
.
addGestureRecognizer
(
tap
)
self
.
imageView
.
addGestureRecognizer
(
tap
)
}
}
...
...
PhoneManager/Class/Page/Home/View/TrashSubView.swift
View file @
873ecde3
...
@@ -9,6 +9,8 @@ import UIKit
...
@@ -9,6 +9,8 @@ import UIKit
class
TrashSubView
:
UIView
{
class
TrashSubView
:
UIView
{
var
type
:
TrashTypeEnum
?
var
clearTashDataCallBack
:
()
->
Void
=
{}
var
clearTashDataCallBack
:
()
->
Void
=
{}
var
presentTashDetailViewClickCallBack
:
()
->
Void
=
{}
var
presentTashDetailViewClickCallBack
:
()
->
Void
=
{}
...
@@ -32,7 +34,7 @@ class TrashSubView: UIView {
...
@@ -32,7 +34,7 @@ class TrashSubView: UIView {
let
button
=
UIButton
(
type
:
.
custom
)
let
button
=
UIButton
(
type
:
.
custom
)
button
.
setImage
(
UIImage
(
named
:
"ic_delete_duplicates"
),
for
:
.
normal
)
button
.
setImage
(
UIImage
(
named
:
"ic_delete_duplicates"
),
for
:
.
normal
)
button
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
button
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
button
.
setTitle
(
"Empty
the garbage
"
,
for
:
.
normal
)
button
.
setTitle
(
"Empty
Trash
"
,
for
:
.
normal
)
button
.
setTitleColor
(
.
white
,
for
:
.
normal
)
button
.
setTitleColor
(
.
white
,
for
:
.
normal
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
12
,
weight
:
.
semibold
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
12
,
weight
:
.
semibold
)
button
.
layer
.
cornerRadius
=
19
button
.
layer
.
cornerRadius
=
19
...
@@ -43,6 +45,8 @@ class TrashSubView: UIView {
...
@@ -43,6 +45,8 @@ class TrashSubView: UIView {
override
init
(
frame
:
CGRect
)
{
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
super
.
init
(
frame
:
frame
)
self
.
addTopShadow
()
// 给当前视图添加手势
// 给当前视图添加手势
addTapGestureToSelf
()
addTapGestureToSelf
()
...
...
PhoneManager/Class/Page/Home/View/YearMonthPickerView.swift
View file @
873ecde3
...
@@ -146,14 +146,14 @@ extension YearMonthPickerView: UIPickerViewDataSource, UIPickerViewDelegate {
...
@@ -146,14 +146,14 @@ extension YearMonthPickerView: UIPickerViewDataSource, UIPickerViewDelegate {
}
}
func
pickerView
(
_
pickerView
:
UIPickerView
,
titleForRow
row
:
Int
,
forComponent
component
:
Int
)
->
String
?
{
func
pickerView
(
_
pickerView
:
UIPickerView
,
titleForRow
row
:
Int
,
forComponent
component
:
Int
)
->
String
?
{
return
component
==
0
?
months
[
row
]
:
"
\(
years
.
reversed
()
[
row
]
)
"
return
component
==
0
?
months
[
row
]
:
"
\(
years
[
row
]
)
"
}
}
func
pickerView
(
_
pickerView
:
UIPickerView
,
didSelectRow
row
:
Int
,
inComponent
component
:
Int
)
{
func
pickerView
(
_
pickerView
:
UIPickerView
,
didSelectRow
row
:
Int
,
inComponent
component
:
Int
)
{
if
component
==
0
{
if
component
==
0
{
selectedMonth
=
row
selectedMonth
=
row
}
else
{
}
else
{
selectedYear
=
years
.
reversed
()
[
row
]
selectedYear
=
years
[
row
]
}
}
}
}
...
...
PhoneManager/Class/Page/Trash/Controller/TrashViewController.swift
View file @
873ecde3
...
@@ -12,13 +12,13 @@ class TrashViewController: BaseViewController {
...
@@ -12,13 +12,13 @@ class TrashViewController: BaseViewController {
var
dissmisCallBack
:()
->
Void
=
{}
var
dissmisCallBack
:()
->
Void
=
{}
var
source
:[
TrashTypeEnum
]
=
[
.
video
,
.
other
,
.
shot
,
.
chat
]
var
source
:[
TrashTypeEnum
]
=
[
.
video
,
.
other
,
.
shot
]
var
contentH
:
CGFloat
=
0
var
contentH
:
CGFloat
=
0
var
contentScrollView
:
UIScrollView
!
var
contentScrollView
:
UIScrollView
!
var
delBtn
:
UIButton
!
var
delBtn
:
UIButton
!
var
currentType
:
TrashTypeEnum
=
.
other
var
currentType
:
TrashTypeEnum
=
.
other
let
pageCount
=
4
// 总页数
let
pageCount
=
3
// 总页数
var
currentPage
=
1
{
var
currentPage
=
1
{
didSet
{
didSet
{
self
.
setDelButtonUI
()
self
.
setDelButtonUI
()
...
@@ -61,7 +61,7 @@ class TrashViewController: BaseViewController {
...
@@ -61,7 +61,7 @@ class TrashViewController: BaseViewController {
func
configUI
(){
func
configUI
(){
view
.
backgroundColor
=
.
white
view
.
backgroundColor
=
.
white
contentScrollView
=
UIScrollView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
ScreenW
,
height
:
contentH
))
contentScrollView
=
UIScrollView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
ScreenW
,
height
:
contentH
))
contentScrollView
.
contentSize
=
CGSize
(
width
:
ScreenW
*
4
,
height
:
view
.
height
)
contentScrollView
.
contentSize
=
CGSize
(
width
:
ScreenW
*
CGFloat
(
self
.
source
.
count
)
,
height
:
view
.
height
)
contentScrollView
.
isPagingEnabled
=
true
contentScrollView
.
isPagingEnabled
=
true
contentScrollView
.
showsHorizontalScrollIndicator
=
false
contentScrollView
.
showsHorizontalScrollIndicator
=
false
contentScrollView
.
showsVerticalScrollIndicator
=
false
contentScrollView
.
showsVerticalScrollIndicator
=
false
...
@@ -98,13 +98,11 @@ class TrashViewController: BaseViewController {
...
@@ -98,13 +98,11 @@ class TrashViewController: BaseViewController {
contentScrollView
.
addSubview
(
videoView
)
contentScrollView
.
addSubview
(
videoView
)
contentScrollView
.
addSubview
(
otherView
)
contentScrollView
.
addSubview
(
otherView
)
contentScrollView
.
addSubview
(
shotView
)
contentScrollView
.
addSubview
(
shotView
)
contentScrollView
.
addSubview
(
chatView
)
videoView
.
deleteButton
=
delBtn
videoView
.
deleteButton
=
delBtn
otherView
.
deleteButton
=
delBtn
otherView
.
deleteButton
=
delBtn
shotView
.
deleteButton
=
delBtn
shotView
.
deleteButton
=
delBtn
chatView
.
deleteButton
=
delBtn
}
}
override
func
viewWillLayoutSubviews
()
{
override
func
viewWillLayoutSubviews
()
{
...
@@ -114,11 +112,10 @@ class TrashViewController: BaseViewController {
...
@@ -114,11 +112,10 @@ class TrashViewController: BaseViewController {
let
viewHeight
=
self
.
view
.
bounds
.
height
let
viewHeight
=
self
.
view
.
bounds
.
height
contentH
=
viewHeight
-
108
contentH
=
viewHeight
-
108
contentScrollView
.
frame
=
CGRect
(
x
:
0
,
y
:
34
,
width
:
viewWidth
,
height
:
contentH
)
contentScrollView
.
frame
=
CGRect
(
x
:
0
,
y
:
34
,
width
:
viewWidth
,
height
:
contentH
)
contentScrollView
.
contentSize
=
CGSize
(
width
:
viewWidth
*
4
,
height
:
contentH
)
contentScrollView
.
contentSize
=
CGSize
(
width
:
viewWidth
*
CGFloat
(
self
.
source
.
count
)
,
height
:
contentH
)
videoView
.
frame
=
CGRect
(
x
:
0
,
y
:
0
,
width
:
viewWidth
,
height
:
contentH
)
videoView
.
frame
=
CGRect
(
x
:
0
,
y
:
0
,
width
:
viewWidth
,
height
:
contentH
)
otherView
.
frame
=
CGRect
(
x
:
viewWidth
,
y
:
0
,
width
:
viewWidth
,
height
:
contentH
)
otherView
.
frame
=
CGRect
(
x
:
viewWidth
,
y
:
0
,
width
:
viewWidth
,
height
:
contentH
)
shotView
.
frame
=
CGRect
(
x
:
viewWidth
*
2
,
y
:
0
,
width
:
viewWidth
,
height
:
contentH
)
shotView
.
frame
=
CGRect
(
x
:
viewWidth
*
2
,
y
:
0
,
width
:
viewWidth
,
height
:
contentH
)
chatView
.
frame
=
CGRect
(
x
:
viewWidth
*
3
,
y
:
0
,
width
:
viewWidth
,
height
:
contentH
)
}
}
lazy
var
videoView
:
TrashContenView
=
{
lazy
var
videoView
:
TrashContenView
=
{
...
@@ -139,54 +136,8 @@ class TrashViewController: BaseViewController {
...
@@ -139,54 +136,8 @@ class TrashViewController: BaseViewController {
return
shotView
return
shotView
}()
}()
lazy
var
chatView
:
TrashContenView
=
{
let
chatView
=
TrashContenView
()
chatView
.
trashType
=
.
chat
return
chatView
}()
//
// lazy var collectionView:UICollectionView = {
// let layout = UICollectionViewFlowLayout()
// layout.itemSize = CGSize(width: view.width, height: view.height)
// layout.scrollDirection = .horizontal
// layout.minimumInteritemSpacing = 0
// layout.minimumLineSpacing = 0
// let collectionView = UICollectionView(frame: CGRect(x: 0, y: 0, width: view.width, height: view.height), collectionViewLayout:layout)
// collectionView.isPagingEnabled = true
// collectionView.delegate = self
// collectionView.backgroundColor = .white
// collectionView.dataSource = self
// collectionView.register(UINib(nibName: "TrashContenViewCell", bundle: nil), forCellWithReuseIdentifier: "TrashContenViewCell0")
// collectionView.register(UINib(nibName: "TrashContenViewCell", bundle: nil), forCellWithReuseIdentifier: "TrashContenViewCell1")
// collectionView.register(UINib(nibName: "TrashContenViewCell", bundle: nil), forCellWithReuseIdentifier: "TrashContenViewCell2")
// collectionView.register(UINib(nibName: "TrashContenViewCell", bundle: nil), forCellWithReuseIdentifier: "TrashContenViewCell3")
//
// return collectionView
// }()
}
}
//extension TrashViewController:UICollectionViewDelegate,UICollectionViewDataSource{
//
// func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
// return source.count
// }
//
// func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "TrashContenViewCell\(indexPath.row)", for: indexPath) as! TrashContenViewCell
// cell.trashType = source[indexPath.row]
// return cell
// }
//
//}
extension
TrashViewController
:
UIScrollViewDelegate
{
extension
TrashViewController
:
UIScrollViewDelegate
{
func
scrollViewDidScroll
(
_
scrollView
:
UIScrollView
){
func
scrollViewDidScroll
(
_
scrollView
:
UIScrollView
){
...
@@ -233,9 +184,6 @@ extension TrashViewController:UIScrollViewDelegate{
...
@@ -233,9 +184,6 @@ extension TrashViewController:UIScrollViewDelegate{
if
self
.
currentPage
==
3
{
if
self
.
currentPage
==
3
{
return
(
TrashTypeEnum
.
shot
,
self
.
shotView
)
return
(
TrashTypeEnum
.
shot
,
self
.
shotView
)
}
}
if
self
.
currentPage
==
4
{
return
(
TrashTypeEnum
.
chat
,
self
.
chatView
)
}
return
(
TrashTypeEnum
.
video
,
self
.
videoView
)
return
(
TrashTypeEnum
.
video
,
self
.
videoView
)
}
}
...
...
PhoneManager/Class/Page/Trash/Model/TrashUIModel.swift
View file @
873ecde3
...
@@ -11,7 +11,6 @@ enum TrashTypeEnum : String, CaseIterable{
...
@@ -11,7 +11,6 @@ enum TrashTypeEnum : String, CaseIterable{
case
video
=
"Video"
case
video
=
"Video"
case
other
=
"Other"
case
other
=
"Other"
case
shot
=
"Screenshot"
case
shot
=
"Screenshot"
case
chat
=
"Chat"
var
dbType
:
Int
{
var
dbType
:
Int
{
switch
self
{
switch
self
{
...
@@ -21,8 +20,6 @@ enum TrashTypeEnum : String, CaseIterable{
...
@@ -21,8 +20,6 @@ enum TrashTypeEnum : String, CaseIterable{
return
1
return
1
case
.
shot
:
case
.
shot
:
return
2
return
2
case
.
chat
:
return
3
}
}
}
}
}
}
...
...
PhoneManager/Class/Page/Trash/View/TrashContenTitleCell.swift
View file @
873ecde3
...
@@ -39,8 +39,6 @@ class TrashContenTitleCell: UICollectionViewCell {
...
@@ -39,8 +39,6 @@ class TrashContenTitleCell: UICollectionViewCell {
scrollLine
.
frame
=
lineTwo
.
frame
scrollLine
.
frame
=
lineTwo
.
frame
case
.
shot
:
case
.
shot
:
scrollLine
.
frame
=
lineThree
.
frame
scrollLine
.
frame
=
lineThree
.
frame
case
.
chat
:
scrollLine
.
frame
=
lineFour
.
frame
}
}
}
}
}
}
...
@@ -130,17 +128,7 @@ class TrashContenTitleCell: UICollectionViewCell {
...
@@ -130,17 +128,7 @@ class TrashContenTitleCell: UICollectionViewCell {
weakSelf
.
scrollLine
.
frame
=
weakSelf
.
lineTwo
.
frame
weakSelf
.
scrollLine
.
frame
=
weakSelf
.
lineTwo
.
frame
}
}
}
}
case
.
chat
:
if
offset
<
ScreenW
*
3
{
UIView
.
animate
(
withDuration
:
0.2
)
{
weakSelf
.
scrollLine
.
frame
=
weakSelf
.
lineThree
.
frame
}
}
else
{
UIView
.
animate
(
withDuration
:
0.2
)
{
weakSelf
.
scrollLine
.
frame
=
weakSelf
.
lineFour
.
frame
}
}
}
}
}
}
}
}
...
...
PhoneManager/Class/Page/Trash/View/TrashContenView.swift
View file @
873ecde3
...
@@ -29,7 +29,7 @@ class TrashContenView: UIView {
...
@@ -29,7 +29,7 @@ class TrashContenView: UIView {
var
deleteButton
:
UIButton
?
var
deleteButton
:
UIButton
?
var
scrollLine
:
UIView
!
var
scrollLine
:
UIView
!
let
lineW
:
CGFloat
=
(
ScreenW
-
62
)
/
4
.0
let
lineW
:
CGFloat
=
(
ScreenW
-
62
)
/
3
.0
var
dataSource
:[
AssetModel
]
=
[]
{
var
dataSource
:[
AssetModel
]
=
[]
{
didSet
{
didSet
{
...
@@ -48,11 +48,6 @@ class TrashContenView: UIView {
...
@@ -48,11 +48,6 @@ class TrashContenView: UIView {
}
}
func
getData
(){
func
getData
(){
// dataSource = TrashDatabase.shared.queryByMediaType(trashType.dbType).compactMap({ (localIdentifier: String, assetSize: Double, createDate: Date, mediaType: Int) in
// return AssetModel.init(localIdentifier: localIdentifier, assetSize: assetSize, createDate: createDate)
// })
collectionView
.
reloadData
()
collectionView
.
reloadData
()
}
}
...
@@ -81,7 +76,6 @@ class TrashContenView: UIView {
...
@@ -81,7 +76,6 @@ class TrashContenView: UIView {
collectionView
.
backgroundColor
=
UIColor
.
colorWithHex
(
hexStr
:
"#F2F6FC"
)
collectionView
.
backgroundColor
=
UIColor
.
colorWithHex
(
hexStr
:
"#F2F6FC"
)
collectionView
.
dataSource
=
self
collectionView
.
dataSource
=
self
collectionView
.
register
(
UINib
(
nibName
:
"TrashContenAssetCell"
,
bundle
:
nil
),
forCellWithReuseIdentifier
:
"TrashContenAssetCell"
)
collectionView
.
register
(
UINib
(
nibName
:
"TrashContenAssetCell"
,
bundle
:
nil
),
forCellWithReuseIdentifier
:
"TrashContenAssetCell"
)
// collectionView.register(UINib(nibName: "TrashContenTitleCell", bundle: nil), forCellWithReuseIdentifier: "TrashContenTitleCell")
addSubview
(
collectionView
)
addSubview
(
collectionView
)
...
@@ -134,14 +128,9 @@ class TrashContenView: UIView {
...
@@ -134,14 +128,9 @@ class TrashContenView: UIView {
lineThree
.
backgroundColor
=
UIColor
.
colorWithHex
(
hexStr
:
"#E5E5E5"
)
lineThree
.
backgroundColor
=
UIColor
.
colorWithHex
(
hexStr
:
"#E5E5E5"
)
topView
.
addSubview
(
lineThree
)
topView
.
addSubview
(
lineThree
)
lineFour
=
UIView
()
lineFour
.
backgroundColor
=
UIColor
.
colorWithHex
(
hexStr
:
"#E5E5E5"
)
topView
.
addSubview
(
lineFour
)
lineOne
.
frame
=
CGRect
(
x
:
16
,
y
:
62
,
width
:
lineW
,
height
:
6
)
lineOne
.
frame
=
CGRect
(
x
:
16
,
y
:
62
,
width
:
lineW
,
height
:
6
)
lineTwo
.
frame
=
CGRect
(
x
:
10
+
lineOne
.
rightX
,
y
:
62
,
width
:
lineW
,
height
:
6
)
lineTwo
.
frame
=
CGRect
(
x
:
10
+
lineOne
.
rightX
,
y
:
62
,
width
:
lineW
,
height
:
6
)
lineThree
.
frame
=
CGRect
(
x
:
10
+
lineTwo
.
rightX
,
y
:
62
,
width
:
lineW
,
height
:
6
)
lineThree
.
frame
=
CGRect
(
x
:
10
+
lineTwo
.
rightX
,
y
:
62
,
width
:
lineW
,
height
:
6
)
lineFour
.
frame
=
CGRect
(
x
:
10
+
lineThree
.
rightX
,
y
:
62
,
width
:
lineW
,
height
:
6
)
scrollLine
=
UIView
()
scrollLine
=
UIView
()
...
@@ -218,23 +207,6 @@ class TrashContenView: UIView {
...
@@ -218,23 +207,6 @@ class TrashContenView: UIView {
}
else
{
}
else
{
weakSelf
.
scrollLine
.
frame
=
weakSelf
.
lineThree
.
frame
weakSelf
.
scrollLine
.
frame
=
weakSelf
.
lineThree
.
frame
}
}
case
.
chat
:
if
page
==
4
{
if
offset
<
ScreenW
*
3
{
UIView
.
animate
(
withDuration
:
0.2
)
{
weakSelf
.
scrollLine
.
frame
=
weakSelf
.
lineThree
.
frame
}
}
else
{
UIView
.
animate
(
withDuration
:
0.2
)
{
weakSelf
.
scrollLine
.
frame
=
weakSelf
.
lineFour
.
frame
}
}
}
else
{
weakSelf
.
scrollLine
.
frame
=
weakSelf
.
lineFour
.
frame
}
}
}
}
}
}
}
...
@@ -245,8 +217,6 @@ class TrashContenView: UIView {
...
@@ -245,8 +217,6 @@ class TrashContenView: UIView {
lineOne
.
cornerCut
(
radius
:
2
,
corner
:
.
allCorners
)
lineOne
.
cornerCut
(
radius
:
2
,
corner
:
.
allCorners
)
lineTwo
.
cornerCut
(
radius
:
2
,
corner
:
.
allCorners
)
lineTwo
.
cornerCut
(
radius
:
2
,
corner
:
.
allCorners
)
lineThree
.
cornerCut
(
radius
:
2
,
corner
:
.
allCorners
)
lineThree
.
cornerCut
(
radius
:
2
,
corner
:
.
allCorners
)
lineFour
.
cornerCut
(
radius
:
2
,
corner
:
.
allCorners
)
// collectionView.frame = self.bounds
}
}
var
trashType
:
TrashTypeEnum
=
.
video
{
var
trashType
:
TrashTypeEnum
=
.
video
{
...
@@ -258,8 +228,6 @@ class TrashContenView: UIView {
...
@@ -258,8 +228,6 @@ class TrashContenView: UIView {
scrollLine
.
frame
=
lineTwo
.
frame
scrollLine
.
frame
=
lineTwo
.
frame
case
.
shot
:
case
.
shot
:
scrollLine
.
frame
=
lineThree
.
frame
scrollLine
.
frame
=
lineThree
.
frame
case
.
chat
:
scrollLine
.
frame
=
lineFour
.
frame
}
}
getData
()
getData
()
}
}
...
...
PhoneManager/Class/Page/Trash/View/TrashDefaultView.swift
View file @
873ecde3
...
@@ -103,8 +103,6 @@ class TrashDefaultView: UIView {
...
@@ -103,8 +103,6 @@ class TrashDefaultView: UIView {
case
.
other
,
.
shot
:
case
.
other
,
.
shot
:
jumpToPhotosDetailPage
(
type
:
type
)
jumpToPhotosDetailPage
(
type
:
type
)
break
break
case
.
chat
:
break
}
}
}
}
}
}
...
@@ -113,14 +111,6 @@ class TrashDefaultView: UIView {
...
@@ -113,14 +111,6 @@ class TrashDefaultView: UIView {
self
.
responderViewController
()?
.
dismiss
(
animated
:
true
,
completion
:
{
self
.
responderViewController
()?
.
dismiss
(
animated
:
true
,
completion
:
{
NotificationCenter
.
default
.
post
(
name
:
TrashDefaultView
.
jumpToPhotosDetailPageName
,
object
:
nil
,
userInfo
:
[
"type"
:
self
.
mediaType
?
.
rawValue
??
""
])
NotificationCenter
.
default
.
post
(
name
:
TrashDefaultView
.
jumpToPhotosDetailPageName
,
object
:
nil
,
userInfo
:
[
"type"
:
self
.
mediaType
?
.
rawValue
??
""
])
})
})
// PhotoDataManager.manager.loadFromFileSystem { model in
// let data = type == .other ? model.otherModelArray[4] : model.otherModelArray[2]
// let vc:HomePhotosDetailViewController = HomePhotosDetailViewController(model: data)
// vc.mediaType = type == .other ? .Other : PhotsFileType.screenshots
// vc.dealData()
// self.responderViewController()?.navigationController?.pushViewController(vc, animated: true)
// }
}
}
func
jumpToVideoDetailPage
(
type
:
TrashTypeEnum
){
func
jumpToVideoDetailPage
(
type
:
TrashTypeEnum
){
self
.
responderViewController
()?
.
dismiss
(
animated
:
true
,
completion
:
{
self
.
responderViewController
()?
.
dismiss
(
animated
:
true
,
completion
:
{
...
...
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