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
7e28f310
Commit
7e28f310
authored
Apr 25, 2025
by
CZ1004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【优化】优化首页,修复BUG
parent
3c8b6e2a
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
312 additions
and
152 deletions
+312
-152
Contents.json
...ssets/Home/img_photo__home_defpage.imageset/Contents.json
+23
-0
img_photo__home_defpage.png
..._photo__home_defpage.imageset/img_photo__home_defpage.png
+0
-0
img_photo__home_defpage@2x.png
...oto__home_defpage.imageset/img_photo__home_defpage@2x.png
+0
-0
img_photo__home_defpage@3x.png
...oto__home_defpage.imageset/img_photo__home_defpage@3x.png
+0
-0
Contents.json
...ts.xcassets/Home/img_vedio_defpage.imageset/Contents.json
+23
-0
img_vedio_defpage.png
...ets/Home/img_vedio_defpage.imageset/img_vedio_defpage.png
+0
-0
img_vedio_defpage@2x.png
.../Home/img_vedio_defpage.imageset/img_vedio_defpage@2x.png
+0
-0
img_vedio_defpage@3x.png
.../Home/img_vedio_defpage.imageset/img_vedio_defpage@3x.png
+0
-0
LaunchScreen.storyboard
PhoneManager/Base.lproj/LaunchScreen.storyboard
+0
-16
HomeInfoViewController.swift
...lass/Session/Home/Controller/HomeInfoViewController.swift
+43
-3
HomePhotosDetailViewController.swift
...sion/Home/Controller/HomePhotosDetailViewController.swift
+43
-5
HomeVideoDetailController.swift
...s/Session/Home/Controller/HomeVideoDetailController.swift
+39
-5
HomeViewController.swift
...er/Class/Session/Home/Controller/HomeViewController.swift
+44
-11
HomeInfoView.swift
PhoneManager/Class/Session/Home/View/HomeInfoView.swift
+11
-3
HomeView.swift
PhoneManager/Class/Session/Home/View/HomeView.swift
+16
-77
HomeInfoTableViewCell.swift
.../Class/Session/Home/View/cell/HomeInfoTableViewCell.swift
+5
-3
HomeVideoDetailCell.swift
...er/Class/Session/Home/View/cell/HomeVideoDetailCell.swift
+1
-1
LauchVC.swift
PhoneManager/Class/Session/Lauch/LauchVC.swift
+6
-5
SecretSetViewController.swift
...anager/Class/Session/Secret/SecretSetViewController.swift
+22
-4
SecretViewController.swift
PhoneManager/Class/Session/Secret/SecretViewController.swift
+27
-15
PhotoAndVideoMananger.swift
...l/Class/PhotoAndVideoMananger/PhotoAndVideoMananger.swift
+9
-4
No files found.
PhoneManager/Assets.xcassets/Home/img_photo__home_defpage.imageset/Contents.json
0 → 100644
View file @
7e28f310
{
"images"
:
[
{
"filename"
:
"img_photo__home_defpage.png"
,
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"img_photo__home_defpage@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"img_photo__home_defpage@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
PhoneManager/Assets.xcassets/Home/img_photo__home_defpage.imageset/img_photo__home_defpage.png
0 → 100644
View file @
7e28f310
18.2 KB
PhoneManager/Assets.xcassets/Home/img_photo__home_defpage.imageset/img_photo__home_defpage@2x.png
0 → 100644
View file @
7e28f310
61.4 KB
PhoneManager/Assets.xcassets/Home/img_photo__home_defpage.imageset/img_photo__home_defpage@3x.png
0 → 100644
View file @
7e28f310
121 KB
PhoneManager/Assets.xcassets/Home/img_vedio_defpage.imageset/Contents.json
0 → 100644
View file @
7e28f310
{
"images"
:
[
{
"filename"
:
"img_vedio_defpage.png"
,
"idiom"
:
"universal"
,
"scale"
:
"1x"
},
{
"filename"
:
"img_vedio_defpage@2x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"2x"
},
{
"filename"
:
"img_vedio_defpage@3x.png"
,
"idiom"
:
"universal"
,
"scale"
:
"3x"
}
],
"info"
:
{
"author"
:
"xcode"
,
"version"
:
1
}
}
PhoneManager/Assets.xcassets/Home/img_vedio_defpage.imageset/img_vedio_defpage.png
0 → 100644
View file @
7e28f310
19.4 KB
PhoneManager/Assets.xcassets/Home/img_vedio_defpage.imageset/img_vedio_defpage@2x.png
0 → 100644
View file @
7e28f310
65.3 KB
PhoneManager/Assets.xcassets/Home/img_vedio_defpage.imageset/img_vedio_defpage@3x.png
0 → 100644
View file @
7e28f310
129 KB
PhoneManager/Base.lproj/LaunchScreen.storyboard
View file @
7e28f310
...
@@ -15,21 +15,8 @@
...
@@ -15,21 +15,8 @@
<view
key=
"view"
contentMode=
"scaleToFill"
id=
"Ze5-6b-2t3"
>
<view
key=
"view"
contentMode=
"scaleToFill"
id=
"Ze5-6b-2t3"
>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"393"
height=
"852"
/>
<rect
key=
"frame"
x=
"0.0"
y=
"0.0"
width=
"393"
height=
"852"
/>
<autoresizingMask
key=
"autoresizingMask"
widthSizable=
"YES"
heightSizable=
"YES"
/>
<autoresizingMask
key=
"autoresizingMask"
widthSizable=
"YES"
heightSizable=
"YES"
/>
<subviews>
<imageView
clipsSubviews=
"YES"
userInteractionEnabled=
"NO"
contentMode=
"scaleAspectFit"
horizontalHuggingPriority=
"251"
verticalHuggingPriority=
"251"
image=
"img_star_start_2.png"
translatesAutoresizingMaskIntoConstraints=
"NO"
id=
"Whq-17-MfS"
>
<rect
key=
"frame"
x=
"86.333333333333329"
y=
"305.66666666666669"
width=
"188.33333333333337"
height=
"188.66666666666669"
/>
<constraints>
<constraint
firstAttribute=
"width"
secondItem=
"Whq-17-MfS"
secondAttribute=
"height"
multiplier=
"1:1"
id=
"KvZ-kq-6Du"
/>
</constraints>
</imageView>
</subviews>
<viewLayoutGuide
key=
"safeArea"
id=
"6Tk-OE-BBY"
/>
<viewLayoutGuide
key=
"safeArea"
id=
"6Tk-OE-BBY"
/>
<color
key=
"backgroundColor"
red=
"0.0"
green=
"0.50980392156862742"
blue=
"1"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<color
key=
"backgroundColor"
red=
"0.0"
green=
"0.50980392156862742"
blue=
"1"
alpha=
"1"
colorSpace=
"calibratedRGB"
/>
<constraints>
<constraint
firstItem=
"Whq-17-MfS"
firstAttribute=
"centerY"
secondItem=
"Ze5-6b-2t3"
secondAttribute=
"centerY"
constant=
"-26"
id=
"eUc-AI-tgC"
/>
<constraint
firstItem=
"Whq-17-MfS"
firstAttribute=
"width"
secondItem=
"Ze5-6b-2t3"
secondAttribute=
"width"
multiplier=
"0.48"
id=
"yGe-jC-RdK"
/>
<constraint
firstItem=
"Whq-17-MfS"
firstAttribute=
"centerX"
secondItem=
"Ze5-6b-2t3"
secondAttribute=
"centerX"
constant=
"-16"
id=
"zVN-dN-0aT"
/>
</constraints>
</view>
</view>
</viewController>
</viewController>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"iYj-Kq-Ea1"
userLabel=
"First Responder"
sceneMemberID=
"firstResponder"
/>
<placeholder
placeholderIdentifier=
"IBFirstResponder"
id=
"iYj-Kq-Ea1"
userLabel=
"First Responder"
sceneMemberID=
"firstResponder"
/>
...
@@ -37,7 +24,4 @@
...
@@ -37,7 +24,4 @@
<point
key=
"canvasLocation"
x=
"52.671755725190835"
y=
"374.64788732394368"
/>
<point
key=
"canvasLocation"
x=
"52.671755725190835"
y=
"374.64788732394368"
/>
</scene>
</scene>
</scenes>
</scenes>
<resources>
<image
name=
"img_star_start_2.png"
width=
"360"
height=
"360"
/>
</resources>
</document>
</document>
PhoneManager/Class/Session/Home/Controller/HomeInfoViewController.swift
View file @
7e28f310
...
@@ -24,7 +24,6 @@ class HomeInfoViewController:BaseViewController {
...
@@ -24,7 +24,6 @@ class HomeInfoViewController:BaseViewController {
btn
.
setTitleColor
(
UIColor
.
colorWithHex
(
hexStr
:
mColor
),
for
:
.
normal
)
btn
.
setTitleColor
(
UIColor
.
colorWithHex
(
hexStr
:
mColor
),
for
:
.
normal
)
btn
.
setTitleColor
(
UIColor
.
colorWithHex
(
hexStr
:
black3Color
),
for
:
.
selected
)
btn
.
setTitleColor
(
UIColor
.
colorWithHex
(
hexStr
:
black3Color
),
for
:
.
selected
)
btn
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
14
,
weight
:
.
bold
)
btn
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
14
,
weight
:
.
bold
)
btn
.
addTarget
(
self
,
action
:
#selector(
seletedAllBtnClick
)
,
for
:
.
touchUpInside
)
btn
.
layer
.
cornerRadius
=
btn
.
height
/
2
btn
.
layer
.
cornerRadius
=
btn
.
height
/
2
btn
.
layer
.
masksToBounds
=
true
btn
.
layer
.
masksToBounds
=
true
...
@@ -103,6 +102,8 @@ class HomeInfoViewController:BaseViewController {
...
@@ -103,6 +102,8 @@ class HomeInfoViewController:BaseViewController {
UserDefaults
.
standard
.
set
(
times
,
forKey
:
"saveAdvTimes"
)
UserDefaults
.
standard
.
set
(
times
,
forKey
:
"saveAdvTimes"
)
}
}
}
}
setDefaultPage
()
}
}
}
}
...
@@ -142,7 +143,9 @@ class HomeInfoViewController:BaseViewController {
...
@@ -142,7 +143,9 @@ class HomeInfoViewController:BaseViewController {
}
}
}
else
{
}
else
{
// 如果小于直接删除
// 如果小于直接删除
deleteOp
(
imgs
:
array
as!
[
AssetModel
],
isAfterAdv
:
false
)
HomePayViewController
.
show
{
deleteOp
(
imgs
:
array
as!
[
AssetModel
],
isAfterAdv
:
false
)
}
}
}
}
else
{
}
else
{
...
@@ -169,7 +172,9 @@ class HomeInfoViewController:BaseViewController {
...
@@ -169,7 +172,9 @@ class HomeInfoViewController:BaseViewController {
}
}
}
else
{
}
else
{
// 如果只是一张,直接删除
// 如果只是一张,直接删除
deleteOp
(
imgs
:
array
as!
[
AssetModel
],
isAfterAdv
:
false
)
HomePayViewController
.
show
{
deleteOp
(
imgs
:
array
as!
[
AssetModel
],
isAfterAdv
:
false
)
}
}
}
}
}
}
}
...
@@ -200,12 +205,20 @@ class HomeInfoViewController:BaseViewController {
...
@@ -200,12 +205,20 @@ class HomeInfoViewController:BaseViewController {
}
}
}
else
{
}
else
{
deleteOp
(
imgs
:
array
as!
[
AssetModel
],
isAfterAdv
:
false
)
deleteOp
(
imgs
:
array
as!
[
AssetModel
],
isAfterAdv
:
false
)
}
}
}
}
return
sview
return
sview
}()
}()
lazy
var
defaultImageView
:
UIImageView
=
{
let
defaultImageView
=
UIImageView
()
defaultImageView
.
image
=
UIImage
(
named
:
"img_photo__home_defpage"
)
defaultImageView
.
isHidden
=
true
return
defaultImageView
}()
var
ids
:
[[
AssetModel
]]?
var
ids
:
[[
AssetModel
]]?
var
titleText
:
String
?
var
titleText
:
String
?
...
@@ -243,7 +256,34 @@ class HomeInfoViewController:BaseViewController {
...
@@ -243,7 +256,34 @@ class HomeInfoViewController:BaseViewController {
seletedAllBtn
.
centerY
=
navCenterY
seletedAllBtn
.
centerY
=
navCenterY
titleView
.
addSubview
(
seletedAllBtn
)
titleView
.
addSubview
(
seletedAllBtn
)
view
.
addSubview
(
tablewView
)
view
.
addSubview
(
tablewView
)
view
.
addSubview
(
self
.
defaultImageView
)
self
.
defaultImageView
.
snp
.
makeConstraints
{
make
in
make
.
width
.
height
.
equalTo
(
180
)
make
.
top
.
equalTo
(
292
)
make
.
centerX
.
equalToSuperview
()
}
setDefaultPage
()
}
//设置空白页
func
setDefaultPage
(){
DispatchQueue
.
main
.
async
{
if
self
.
ids
?
.
count
==
0
{
if
self
.
type
==
.
SimilarVideos
{
self
.
defaultImageView
.
image
=
UIImage
(
named
:
"img_vedio_defpage"
)
}
else
{
self
.
defaultImageView
.
image
=
UIImage
(
named
:
"img_photo__home_defpage"
)
}
self
.
defaultImageView
.
isHidden
=
false
self
.
seletedAllBtn
.
isHidden
=
true
}
else
{
self
.
defaultImageView
.
isHidden
=
true
self
.
seletedAllBtn
.
isHidden
=
false
}
}
}
}
@objc
func
seletedAllBtnClick
()
{
@objc
func
seletedAllBtnClick
()
{
...
...
PhoneManager/Class/Session/Home/Controller/HomePhotosDetailViewController.swift
View file @
7e28f310
...
@@ -67,6 +67,13 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -67,6 +67,13 @@ class HomePhotosDetailViewController : BaseViewController {
}
}
}
}
lazy
var
defaultImageView
:
UIImageView
=
{
let
defaultImageView
=
UIImageView
()
defaultImageView
.
image
=
UIImage
(
named
:
"img_photo__home_defpage"
)
defaultImageView
.
isHidden
=
true
return
defaultImageView
}()
lazy
var
collectionView
:
UICollectionView
=
{
lazy
var
collectionView
:
UICollectionView
=
{
...
@@ -126,6 +133,7 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -126,6 +133,7 @@ class HomePhotosDetailViewController : BaseViewController {
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
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
...
@@ -147,9 +155,35 @@ class HomePhotosDetailViewController : BaseViewController {
...
@@ -147,9 +155,35 @@ class HomePhotosDetailViewController : BaseViewController {
make
.
height
.
equalTo
(
46
)
make
.
height
.
equalTo
(
46
)
}
}
self
.
view
.
addSubview
(
self
.
defaultImageView
)
self
.
defaultImageView
.
snp
.
makeConstraints
{
make
in
make
.
width
.
height
.
equalTo
(
180
)
make
.
top
.
equalTo
(
292
)
make
.
centerX
.
equalToSuperview
()
}
setDefaultPage
()
}
}
//设置空白页
func
setDefaultPage
(){
DispatchQueue
.
main
.
async
{
if
self
.
resourceData
.
count
==
0
{
self
.
defaultImageView
.
isHidden
=
false
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
true
self
.
videoDetailNavView
?
.
seletedAllBtn
.
isHidden
=
true
self
.
deleteButton
.
isHidden
=
true
}
else
{
self
.
defaultImageView
.
isHidden
=
true
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
false
self
.
videoDetailNavView
?
.
seletedAllBtn
.
isHidden
=
false
self
.
deleteButton
.
isHidden
=
false
}
}
}
override
func
viewDidLoad
()
{
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
super
.
viewDidLoad
()
view
.
backgroundColor
=
.
white
view
.
backgroundColor
=
.
white
...
@@ -411,7 +445,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -411,7 +445,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
}
}
else
{
}
else
{
// 如果小于直接删除
// 如果小于直接删除
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
HomePayViewController
.
show
{
self
.
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
}
}
}
}
else
{
}
else
{
...
@@ -438,7 +474,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -438,7 +474,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
}
}
else
{
}
else
{
// 如果只是一张,直接删除
// 如果只是一张,直接删除
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
HomePayViewController
.
show
{
self
.
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
}
}
}
}
}
}
}
...
@@ -454,7 +492,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -454,7 +492,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
}
}
}
}
else
{
}
else
{
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
self
.
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
}
}
...
@@ -527,10 +565,10 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
...
@@ -527,10 +565,10 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
self
.
deleteButton
.
setTitle
(
"Delete"
,
for
:
.
normal
)
self
.
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
.
reload
Data
(
)
self
.
collectionView
.
reload
Sections
(
IndexSet
(
integer
:
0
)
)
},
completion
:
nil
)
},
completion
:
nil
)
}
}
setDefaultPage
()
}
}
...
...
PhoneManager/Class/Session/Home/Controller/HomeVideoDetailController.swift
View file @
7e28f310
...
@@ -96,6 +96,13 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -96,6 +96,13 @@ class HomeVideoDetailController :BaseViewController {
return
view
return
view
}()
}()
lazy
var
defaultImageView
:
UIImageView
=
{
let
defaultImageView
=
UIImageView
()
defaultImageView
.
image
=
UIImage
(
named
:
"img_vedio_defpage"
)
defaultImageView
.
isHidden
=
true
return
defaultImageView
}()
func
setUI
(){
func
setUI
(){
videoDetailNavView
=
VideoDetaiNavView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
width
,
height
:
statusBarHeight
+
44
))
videoDetailNavView
=
VideoDetaiNavView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
width
,
height
:
statusBarHeight
+
44
))
...
@@ -139,6 +146,13 @@ class HomeVideoDetailController :BaseViewController {
...
@@ -139,6 +146,13 @@ class HomeVideoDetailController :BaseViewController {
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
46
)
make
.
height
.
equalTo
(
46
)
}
}
self
.
view
.
addSubview
(
self
.
defaultImageView
)
self
.
defaultImageView
.
snp
.
makeConstraints
{
make
in
make
.
width
.
height
.
equalTo
(
180
)
make
.
top
.
equalTo
(
292
)
make
.
centerX
.
equalToSuperview
()
}
setDefaultPage
()
}
}
...
@@ -355,7 +369,9 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -355,7 +369,9 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
}
}
else
{
}
else
{
// 如果小于直接删除
// 如果小于直接删除
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
HomePayViewController
.
show
{
self
.
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
}
}
}
}
else
{
}
else
{
...
@@ -382,11 +398,11 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -382,11 +398,11 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
}
}
else
{
}
else
{
// 如果只是一张,直接删除
// 如果只是一张,直接删除
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
HomePayViewController
.
show
{
self
.
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
}
}
}
}
}
}
}
view
.
deleteButtonClickCallback
=
{
isMore
,
deleteCount
in
view
.
deleteButtonClickCallback
=
{
isMore
,
deleteCount
in
if
isMore
==
true
{
if
isMore
==
true
{
...
@@ -400,7 +416,7 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -400,7 +416,7 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
}
}
}
}
else
{
}
else
{
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
self
.
deleteAction
(
count
:
self
.
selectedModel
.
count
,
isAfterAdv
:
false
)
}
}
}
}
...
@@ -444,6 +460,22 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -444,6 +460,22 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
}
}
}
func
setDefaultPage
(){
DispatchQueue
.
main
.
async
{
if
self
.
resourceData
.
count
==
0
{
self
.
defaultImageView
.
isHidden
=
false
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
true
self
.
videoDetailNavView
?
.
seletedAllBtn
.
isHidden
=
true
self
.
deleteButton
.
isHidden
=
true
}
else
{
self
.
defaultImageView
.
isHidden
=
true
self
.
currentHeaderView
?
.
btnView
.
isHidden
=
false
self
.
videoDetailNavView
?
.
seletedAllBtn
.
isHidden
=
false
self
.
deleteButton
.
isHidden
=
false
}
}
}
func
updateCurrentPageWhenDeleteAny
(){
func
updateCurrentPageWhenDeleteAny
(){
for
item
in
self
.
selectedModel
{
for
item
in
self
.
selectedModel
{
...
@@ -474,6 +506,8 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
...
@@ -474,6 +506,8 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
self
.
collectionView
.
reloadData
()
self
.
collectionView
.
reloadData
()
},
completion
:
nil
)
},
completion
:
nil
)
}
}
setDefaultPage
()
}
}
...
...
PhoneManager/Class/Session/Home/Controller/HomeViewController.swift
View file @
7e28f310
...
@@ -31,8 +31,27 @@ class HomeViewController:BaseViewController {
...
@@ -31,8 +31,27 @@ class HomeViewController:BaseViewController {
case
1
:
case
1
:
DispatchQueue
.
main
.
async
{
[
weak
self
]
in
DispatchQueue
.
main
.
async
{
[
weak
self
]
in
guard
let
self
else
{
return
}
guard
let
self
else
{
return
}
let
vc
:
SecretViewController
=
SecretViewController
()
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
// 这里需要看下是否需要PIN验证
let
pass
=
UserDefaults
.
standard
.
object
(
forKey
:
SecretViewController
.
psKey
)
as?
String
??
""
if
pass
.
count
>
2
{
let
set
=
SecretSetViewController
()
set
.
secretType
=
.
verify
set
.
modalPresentationStyle
=
.
fullScreen
self
.
present
(
set
,
animated
:
true
)
set
.
Callback
=
{[
weak
self
]
su
in
guard
let
self
else
{
return
}
set
.
dismiss
(
animated
:
true
)
let
vc
:
SecretViewController
=
SecretViewController
()
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
else
{
let
vc
:
SecretViewController
=
SecretViewController
()
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
//
// let vc:SecretViewController = SecretViewController()
// self.navigationController?.pushViewController(vc, animated: true)
}
}
case
2
:
case
2
:
DispatchQueue
.
main
.
async
{[
weak
self
]
in
DispatchQueue
.
main
.
async
{[
weak
self
]
in
...
@@ -47,6 +66,8 @@ class HomeViewController:BaseViewController {
...
@@ -47,6 +66,8 @@ class HomeViewController:BaseViewController {
}
}
lazy
var
imageView
:
UIImageView
=
{
lazy
var
imageView
:
UIImageView
=
{
let
imageView
=
UIImageView
()
let
imageView
=
UIImageView
()
imageView
.
image
=
UIImage
(
named
:
"img_bj_home"
)
imageView
.
image
=
UIImage
(
named
:
"img_bj_home"
)
...
@@ -191,6 +212,10 @@ class HomeViewController:BaseViewController {
...
@@ -191,6 +212,10 @@ class HomeViewController:BaseViewController {
}
}
})
})
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
// 总数据 文件数量和文件大小
// 总数据 文件数量和文件大小
PhotoAndVideoMananger
.
mananger
.
fetchAllFile
{[
weak
self
]
index
,
FileSize
in
PhotoAndVideoMananger
.
mananger
.
fetchAllFile
{[
weak
self
]
index
,
FileSize
in
...
@@ -210,23 +235,31 @@ class HomeViewController:BaseViewController {
...
@@ -210,23 +235,31 @@ class HomeViewController:BaseViewController {
}
}
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
// 可能是删除数据,重新获取下
// 可能是删除数据,重新获取下
PhotoDataManager
.
manager
.
loadFromFileSystem
(
resultModel
:
{[
weak
self
]
model
in
PhotoDataManager
.
manager
.
loadFromFileSystem
(
resultModel
:
{[
weak
self
]
model
in
DispatchQueue
.
main
.
async
{
DispatchQueue
.
main
.
async
{
self
?
.
homeView
?
.
model
=
model
self
?
.
homeView
?
.
model
=
model
if
let
collectionView
=
self
?
.
homeView
?
.
collectionView
{
if
let
collectionView
=
self
?
.
homeView
?
.
collectionView
{
UIView
.
transition
(
with
:
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
collectionView
.
reloadData
()
for
section
in
0
..<
collectionView
.
numberOfSections
{
},
completion
:
nil
)
for
item
in
0
..<
collectionView
.
numberOfItems
(
inSection
:
section
)
{
if
section
==
0
||
section
==
1
{
if
let
cell
=
collectionView
.
cellForItem
(
at
:
IndexPath
(
row
:
item
,
section
:
section
))
as?
HomeTitleCollectionCell
{
UIView
.
transition
(
with
:
cell
.
collectionView
!
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
cell
.
collectionView
?
.
reloadData
()
},
completion
:
nil
)
}
}
else
{
UIView
.
transition
(
with
:
collectionView
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
?
.
homeView
?
.
collectionView
.
reloadItems
(
at
:
[
IndexPath
(
row
:
item
,
section
:
section
)])
},
completion
:
nil
)
}
}
}
}
}
}
}
})
})
}
}
override
func
viewDidAppear
(
_
animated
:
Bool
)
{
override
func
viewDidAppear
(
_
animated
:
Bool
)
{
...
...
PhoneManager/Class/Session/Home/View/HomeInfoView.swift
View file @
7e28f310
...
@@ -155,13 +155,21 @@ class HomeInfoView :UIView{
...
@@ -155,13 +155,21 @@ class HomeInfoView :UIView{
smodel2
.
isSeleted
=
isSeleted
smodel2
.
isSeleted
=
isSeleted
}
}
}
}
}
}
tableView
.
reloadSections
(
IndexSet
(
integer
:
0
),
with
:
.
automatic
)
// 设置头部的统计数量
setTitleView
()
setTitleView
()
for
section
in
0
..<
self
.
tableView
.
numberOfSections
{
for
item
in
0
..<
self
.
tableView
.
numberOfRows
(
inSection
:
section
)
{
if
let
cell
=
self
.
tableView
.
cellForRow
(
at
:
IndexPath
(
row
:
item
,
section
:
section
))
as?
HomeInfoTableViewCell
{
UIView
.
transition
(
with
:
cell
.
collectionView
!
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
cell
.
collectionView
?
.
reloadData
()
},
completion
:
nil
)
}
}
}
}
}
func
getSelectedArray
()
->
[
AssetModel
]
{
func
getSelectedArray
()
->
[
AssetModel
]
{
...
...
PhoneManager/Class/Session/Home/View/HomeView.swift
View file @
7e28f310
...
@@ -28,20 +28,7 @@ class HomeView:UIView {
...
@@ -28,20 +28,7 @@ class HomeView:UIView {
var
otherItemCallBack
:
(
HomePhotosModel
,
Int
)
->
Void
=
{
data
,
otherCellRow
in
}
var
otherItemCallBack
:
(
HomePhotosModel
,
Int
)
->
Void
=
{
data
,
otherCellRow
in
}
var
model
:
PhotosManagerModel
?
{
var
model
:
PhotosManagerModel
?
didSet
{
guard
model
!=
nil
else
{
return
}
DispatchQueue
.
main
.
async
{[
weak
self
]
in
guard
let
self
else
{
return
}
// self.collectionView.reloadData()
}
}
}
lazy
var
collectionView
:
UICollectionView
=
{
lazy
var
collectionView
:
UICollectionView
=
{
...
@@ -73,8 +60,6 @@ class HomeView:UIView {
...
@@ -73,8 +60,6 @@ class HomeView:UIView {
super
.
init
(
frame
:
frame
)
super
.
init
(
frame
:
frame
)
setData
()
setupUI
()
setupUI
()
}
}
...
@@ -82,30 +67,6 @@ class HomeView:UIView {
...
@@ -82,30 +67,6 @@ class HomeView:UIView {
fatalError
(
"init(coder:) has not been implemented"
)
fatalError
(
"init(coder:) has not been implemented"
)
}
}
func
reload
(
type
:
PhotsFileType
)
{
var
indexPath
:
IndexPath
if
type
==
.
duplicates
{
indexPath
=
IndexPath
(
row
:
0
,
section
:
0
)
}
else
if
type
==
.
similar
{
indexPath
=
IndexPath
(
row
:
1
,
section
:
0
)
}
else
if
type
==
.
videos
{
indexPath
=
IndexPath
(
row
:
0
,
section
:
1
)
}
DispatchQueue
.
main
.
async
{[
weak
self
]
in
guard
let
self
else
{
return
}
self
.
collectionView
.
reloadData
()
}
}
func
setTitle
()
{
func
setTitle
()
{
DispatchQueue
.
main
.
async
{[
weak
self
]
in
DispatchQueue
.
main
.
async
{[
weak
self
]
in
...
@@ -117,39 +78,6 @@ class HomeView:UIView {
...
@@ -117,39 +78,6 @@ class HomeView:UIView {
}
}
func
refreshData
(
model
:
PhotosManagerModel
)
{
if
self
.
model
==
nil
{
DispatchQueue
.
main
.
async
{[
weak
self
]
in
guard
let
self
else
{
return
}
self
.
homeHeader
?
.
setFileAndCount
(
count
:
model
.
allFileNumber
,
fileSize
:
model
.
allFileSize
)
self
.
collectionView
.
reloadData
()
}
}
else
{
DispatchQueue
.
main
.
async
{[
weak
self
]
in
guard
let
self
else
{
return
}
self
.
homeHeader
?
.
setFileAndCount
(
count
:
model
.
allFileNumber
,
fileSize
:
model
.
allFileSize
)
self
.
collectionView
.
reloadData
()
}
}
self
.
model
=
model
}
func
setData
()
{
}
private
func
setupUI
()
{
private
func
setupUI
()
{
backgroundColor
=
.
clear
backgroundColor
=
.
clear
...
@@ -198,9 +126,6 @@ class HomeView:UIView {
...
@@ -198,9 +126,6 @@ class HomeView:UIView {
make
.
width
.
equalToSuperview
()
.
offset
(
-
2
*
marginLR
)
make
.
width
.
equalToSuperview
()
.
offset
(
-
2
*
marginLR
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
homeTabbarView
!.
height
-
16
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
homeTabbarView
!.
height
-
16
)
}
}
// collectionView.contentInset = UIEdgeInsets(top: homeTabbarView!.height + 49, left: 0, bottom: homeTabbarView!.height + 16, right: 0)
}
}
func
etCell
(
indexPath
:
IndexPath
)
->
UICollectionViewCell
{
func
etCell
(
indexPath
:
IndexPath
)
->
UICollectionViewCell
{
...
@@ -255,6 +180,13 @@ extension HomeView:WaterfallMutiSectionDelegate,UICollectionViewDataSource,UICol
...
@@ -255,6 +180,13 @@ extension HomeView:WaterfallMutiSectionDelegate,UICollectionViewDataSource,UICol
}
else
{
}
else
{
self
.
similarHeadCell
=
cell
self
.
similarHeadCell
=
cell
}
}
if
cell
.
model
?
.
assets
.
count
??
0
>
0
{
cell
.
fileLabel
?
.
isHidden
=
false
}
else
{
cell
.
fileLabel
?
.
isHidden
=
true
}
return
cell
return
cell
case
1
:
case
1
:
let
cell
=
collectionView
.
dequeueReusableCell
(
withReuseIdentifier
:
HomeOtherCollectionCell
.
identifier
,
for
:
indexPath
)
as!
HomeOtherCollectionCell
let
cell
=
collectionView
.
dequeueReusableCell
(
withReuseIdentifier
:
HomeOtherCollectionCell
.
identifier
,
for
:
indexPath
)
as!
HomeOtherCollectionCell
...
@@ -279,7 +211,14 @@ extension HomeView:WaterfallMutiSectionDelegate,UICollectionViewDataSource,UICol
...
@@ -279,7 +211,14 @@ extension HomeView:WaterfallMutiSectionDelegate,UICollectionViewDataSource,UICol
let
model
=
model
?
.
titleModelArray
[
indexPath
.
row
]
let
model
=
model
?
.
titleModelArray
[
indexPath
.
row
]
return
(
model
?
.
assets
.
first
?
.
count
??
0
)
>
2
?
((
collection
.
width
-
marginLR
-
20
)
/
2.5
)
+
64
:
((
collection
.
width
-
2
*
marginLR
-
10
)
/
2
)
+
64
if
model
?
.
assets
.
count
??
0
>
0
{
return
(
model
?
.
assets
.
first
?
.
count
??
0
)
>
2
?
((
collection
.
width
-
marginLR
-
20
)
/
2.5
)
+
64
:
((
collection
.
width
-
2
*
marginLR
-
10
)
/
2
)
+
64
}
else
{
return
52
}
}
else
{
}
else
{
let
model
=
model
?
.
otherModelArray
[
indexPath
.
row
]
let
model
=
model
?
.
otherModelArray
[
indexPath
.
row
]
...
...
PhoneManager/Class/Session/Home/View/cell/HomeInfoTableViewCell.swift
View file @
7e28f310
...
@@ -14,7 +14,7 @@ class HomeInfoTableViewCell:UITableViewCell {
...
@@ -14,7 +14,7 @@ class HomeInfoTableViewCell:UITableViewCell {
private
var
backView
:
UIView
?
private
var
backView
:
UIView
?
private
var
collectionView
:
UICollectionView
?
var
collectionView
:
UICollectionView
?
private
var
numberLabel
:
UILabel
?
private
var
numberLabel
:
UILabel
?
...
@@ -112,8 +112,10 @@ class HomeInfoTableViewCell:UITableViewCell {
...
@@ -112,8 +112,10 @@ class HomeInfoTableViewCell:UITableViewCell {
collectionView
?
.
x
=
(
backView
?
.
x
??
0
)
+
marginLR
collectionView
?
.
x
=
(
backView
?
.
x
??
0
)
+
marginLR
collectionView
?
.
y
=
(
backView
?
.
y
??
0
)
+
(
backView
?
.
height
??
0
)
-
(
collectionView
?
.
height
??
0
)
-
16
collectionView
?
.
y
=
(
backView
?
.
y
??
0
)
+
(
backView
?
.
height
??
0
)
-
(
collectionView
?
.
height
??
0
)
-
16
self
.
collectionView
?
.
reloadData
()
UIView
.
transition
(
with
:
collectionView
!
,
duration
:
0.3
,
options
:
.
transitionCrossDissolve
,
animations
:
{
self
.
collectionView
?
.
reloadData
()
},
completion
:
nil
)
}
}
}
}
...
...
PhoneManager/Class/Session/Home/View/cell/HomeVideoDetailCell.swift
View file @
7e28f310
...
@@ -27,7 +27,7 @@ class HomeVideoDetailCell : UICollectionViewCell {
...
@@ -27,7 +27,7 @@ class HomeVideoDetailCell : UICollectionViewCell {
// 允许从iCloud请求
// 允许从iCloud请求
options
.
isNetworkAccessAllowed
=
true
options
.
isNetworkAccessAllowed
=
true
// 异步请求
// 异步请求
options
.
isSynchronous
=
tru
e
options
.
isSynchronous
=
fals
e
// 从 PHAsset 获取 AVAsset
// 从 PHAsset 获取 AVAsset
if
let
videoAsset
=
PhotoAndVideoMananger
.
mananger
.
getPHAsssetwithID
(
ids
:
[
resourceIdent
!.
localIdentifier
]){
if
let
videoAsset
=
PhotoAndVideoMananger
.
mananger
.
getPHAsssetwithID
(
ids
:
[
resourceIdent
!.
localIdentifier
]){
// 使用requestImageForAsset方法请求视频的第一帧图片
// 使用requestImageForAsset方法请求视频的第一帧图片
...
...
PhoneManager/Class/Session/Lauch/LauchVC.swift
View file @
7e28f310
...
@@ -33,13 +33,14 @@ class LauchVC:UIViewController {
...
@@ -33,13 +33,14 @@ class LauchVC:UIViewController {
backView
.
addSubview
(
LaunchingLoop
)
backView
.
addSubview
(
LaunchingLoop
)
LaunchingView
.
snp
.
makeConstraints
{
make
in
LaunchingView
.
snp
.
makeConstraints
{
make
in
make
.
centerX
.
equalToSuperview
()
make
.
centerX
.
equalToSuperview
()
make
.
centerY
.
equalToSuperview
()
.
offset
(
-
80
)
make
.
centerY
.
equalToSuperview
()
.
offset
(
-
140
*
RScreenH
()
)
make
.
width
.
equalToSuperview
()
.
offset
(
-
20
)
make
.
width
.
equalToSuperview
()
make
.
height
.
equalTo
(
LaunchingView
.
snp
.
width
)
.
multipliedBy
(
276
/
504.0
)
make
.
height
.
equalTo
(
LaunchingView
.
snp
.
width
)
}
}
LaunchingLoop
.
snp
.
makeConstraints
{
make
in
LaunchingLoop
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
centerX
.
equalToSuperview
()
make
.
centerY
.
equalToSuperview
()
.
offset
(
80
)
make
.
width
.
height
.
equalTo
(
200
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
60
*
RScreenH
())
}
}
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
3
,
execute
:
{
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
3
,
execute
:
{
var
vc
:
UIViewController
?
var
vc
:
UIViewController
?
...
...
PhoneManager/Class/Session/Secret/SecretSetViewController.swift
View file @
7e28f310
...
@@ -29,6 +29,11 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
...
@@ -29,6 +29,11 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
override
func
viewDidLoad
()
{
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
super
.
viewDidLoad
()
self
.
titleView
.
backBtn
.
setImage
(
UIImage
(
named
:
"ic_close_charging"
),
for
:
.
normal
)
self
.
titleView
.
model
.
isBackBtnShow
=
true
titleView
.
model
.
title
=
"Secret Library"
titleView
.
model
.
title
=
"Secret Library"
titleView
.
titleLabel
.
textColor
=
.
black
titleView
.
titleLabel
.
textColor
=
.
black
titleView
.
titleLabel
.
textAlignment
=
.
left
titleView
.
titleLabel
.
textAlignment
=
.
left
...
@@ -40,7 +45,7 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
...
@@ -40,7 +45,7 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
override
func
close
(
animation
:
Bool
=
true
)
{
override
func
close
(
animation
:
Bool
=
true
)
{
if
secretType
==
.
verify
{
if
secretType
==
.
verify
{
self
.
navigationController
?
.
popToRootViewController
(
animated
:
true
)
self
.
dismiss
(
animated
:
true
)
return
return
}
}
Callback
(
false
)
Callback
(
false
)
...
@@ -63,6 +68,11 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
...
@@ -63,6 +68,11 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
}
else
{
}
else
{
if
secretType
==
.
del
{
if
secretType
==
.
del
{
UserDefaults
.
standard
.
set
(
""
,
forKey
:
SecretViewController
.
psKey
)
UserDefaults
.
standard
.
set
(
""
,
forKey
:
SecretViewController
.
psKey
)
let
alert
=
UIAlertController
(
title
:
nil
,
message
:
"The PIN has been deleted"
,
preferredStyle
:
.
alert
)
self
.
present
(
alert
,
animated
:
true
)
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
1.5
)
{
alert
.
dismiss
(
animated
:
true
)
}
}
}
}
}
}
else
{
}
else
{
...
@@ -78,7 +88,7 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
...
@@ -78,7 +88,7 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
1.5
)
{
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
1.5
)
{
alert
.
dismiss
(
animated
:
true
)
{
alert
.
dismiss
(
animated
:
true
)
{
self
.
Callback
(
true
)
self
.
Callback
(
true
)
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
self
.
dismiss
(
animated
:
true
)
}
}
}
}
}
}
...
@@ -90,8 +100,16 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
...
@@ -90,8 +100,16 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
}
}
return
return
}
}
Callback
(
true
)
UserDefaults
.
standard
.
set
(
""
,
forKey
:
SecretViewController
.
psKey
)
self
.
navigationController
?
.
popViewController
(
animated
:
true
)
let
alert
=
UIAlertController
(
title
:
nil
,
message
:
"Unlocked"
,
preferredStyle
:
.
alert
)
self
.
present
(
alert
,
animated
:
true
)
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
1.5
)
{
alert
.
dismiss
(
animated
:
true
){
self
.
Callback
(
true
)
self
.
dismiss
(
animated
:
true
)
}
}
}
}
}
}
}
}
...
...
PhoneManager/Class/Session/Secret/SecretViewController.swift
View file @
7e28f310
...
@@ -22,7 +22,7 @@ class SecretViewController: BaseViewController {
...
@@ -22,7 +22,7 @@ class SecretViewController: BaseViewController {
/** 首次显示 */
/** 首次显示 */
private
var
isShow
:
Bool
{
private
var
isShow
:
Bool
{
get
{
get
{
guard
let
show
=
UserDefaults
.
standard
.
object
(
forKey
:
"SecretFirstShow"
)
else
{
guard
UserDefaults
.
standard
.
object
(
forKey
:
"SecretFirstShow"
)
!=
nil
else
{
UserDefaults
.
standard
.
set
(
"1"
,
forKey
:
"SecretFirstShow"
)
UserDefaults
.
standard
.
set
(
"1"
,
forKey
:
"SecretFirstShow"
)
return
false
return
false
}
}
...
@@ -54,16 +54,17 @@ class SecretViewController: BaseViewController {
...
@@ -54,16 +54,17 @@ class SecretViewController: BaseViewController {
super
.
viewDidLoad
()
super
.
viewDidLoad
()
_
=
Resource
.
isDirect
()
_
=
Resource
.
isDirect
()
if
isShow
{
if
isShow
{
if
pass
.
count
>
2
{
// if pass.count > 2 {
let
set
=
SecretSetViewController
()
// let set = SecretSetViewController()
set
.
secretType
=
.
verify
// set.secretType = .verify
set
.
Callback
=
{[
weak
self
]
su
in
// set.Callback = {[weak self] su in
self
?
.
ShowUI
()
// self?.ShowUI()
}
// }
self
.
navigationController
?
.
pushViewController
(
set
,
animated
:
true
)
// self.navigationController?.pushViewController(set, animated: true)
}
else
{
// }else{
self
.
ShowUI
()
// self.ShowUI()
}
// }
self
.
ShowUI
()
}
else
{
}
else
{
let
alert
=
SecretAlert
()
let
alert
=
SecretAlert
()
titleView
.
isHidden
=
true
titleView
.
isHidden
=
true
...
@@ -73,9 +74,12 @@ class SecretViewController: BaseViewController {
...
@@ -73,9 +74,12 @@ class SecretViewController: BaseViewController {
let
set
=
SecretSetViewController
()
let
set
=
SecretSetViewController
()
set
.
secretType
=
.
create
set
.
secretType
=
.
create
set
.
Callback
=
{
su
in
set
.
Callback
=
{
su
in
set
.
dismiss
(
animated
:
true
)
self
?
.
ShowUI
()
self
?
.
ShowUI
()
}
}
self
?
.
navigationController
?
.
pushViewController
(
set
,
animated
:
true
)
set
.
modalPresentationStyle
=
.
fullScreen
self
?
.
present
(
set
,
animated
:
true
)
// self?.navigationController?.pushViewController(set, animated: true)
}
else
{
}
else
{
self
?
.
ShowUI
()
self
?
.
ShowUI
()
}
}
...
@@ -135,14 +139,22 @@ class SecretViewController: BaseViewController {
...
@@ -135,14 +139,22 @@ class SecretViewController: BaseViewController {
if
pass
.
count
>
2
{
if
pass
.
count
>
2
{
let
set
=
SecretSetViewController
()
let
set
=
SecretSetViewController
()
set
.
secretType
=
.
del
set
.
secretType
=
.
del
self
.
navigationController
?
.
pushViewController
(
set
,
animated
:
true
)
// self.navigationController?.pushViewController(set, animated: true)
set
.
Callback
=
{
cr
in
set
.
dismiss
(
animated
:
true
)
}
set
.
modalPresentationStyle
=
.
fullScreen
self
.
present
(
set
,
animated
:
true
)
}
else
{
}
else
{
let
set
=
SecretSetViewController
()
let
set
=
SecretSetViewController
()
set
.
secretType
=
.
create
set
.
secretType
=
.
create
set
.
Callback
=
{
cr
in
set
.
Callback
=
{
cr
in
set
.
dismiss
(
animated
:
true
)
}
}
self
.
navigationController
?
.
pushViewController
(
set
,
animated
:
true
)
// self.navigationController?.pushViewController(set, animated: true)
set
.
modalPresentationStyle
=
.
fullScreen
self
.
present
(
set
,
animated
:
true
)
}
}
}
}
...
...
PhoneManager/Class/Tool/Class/PhotoAndVideoMananger/PhotoAndVideoMananger.swift
View file @
7e28f310
...
@@ -321,6 +321,7 @@ class PhotoAndVideoMananger {
...
@@ -321,6 +321,7 @@ class PhotoAndVideoMananger {
let
targetSize
=
CGSize
(
width
:
400
,
height
:
400
)
let
targetSize
=
CGSize
(
width
:
400
,
height
:
400
)
let
options
=
PHImageRequestOptions
()
let
options
=
PHImageRequestOptions
()
options
.
isSynchronous
=
true
options
.
isSynchronous
=
true
options
.
deliveryMode
=
.
opportunistic
options
.
isNetworkAccessAllowed
=
true
options
.
isNetworkAccessAllowed
=
true
imageManager
.
requestImage
(
for
:
asset
,
targetSize
:
targetSize
,
contentMode
:
.
aspectFill
,
options
:
options
)
{
result
,
_
in
imageManager
.
requestImage
(
for
:
asset
,
targetSize
:
targetSize
,
contentMode
:
.
aspectFill
,
options
:
options
)
{
result
,
_
in
image
=
result
image
=
result
...
@@ -829,7 +830,7 @@ class PhotoAndVideoMananger {
...
@@ -829,7 +830,7 @@ class PhotoAndVideoMananger {
}
}
var
finalData
:
[[
AssetModel
]]
=
[]
var
finalData
:
[[
AssetModel
]]
=
[]
// 按照大小排序下
// 按照大小排序下
data
=
data
.
sorted
{
$0
.
assetSize
<
$1
.
assetSize
}
data
=
data
.
sorted
{
$0
.
assetSize
>
$1
.
assetSize
}
finalData
.
append
(
data
)
finalData
.
append
(
data
)
completionHandler
(
finalData
)
completionHandler
(
finalData
)
}
}
...
@@ -847,6 +848,8 @@ class PhotoAndVideoMananger {
...
@@ -847,6 +848,8 @@ class PhotoAndVideoMananger {
data
.
append
(
AssetModel
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
self
.
findAssetSize
(
asset
:
item
),
createDate
:
item
.
creationDate
!
))
data
.
append
(
AssetModel
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
self
.
findAssetSize
(
asset
:
item
),
createDate
:
item
.
creationDate
!
))
}
}
var
finalData
:
[[
AssetModel
]]
=
[]
var
finalData
:
[[
AssetModel
]]
=
[]
// 排序,从大到小
data
=
data
.
sorted
{
$0
.
assetSize
>
$1
.
assetSize
}
finalData
.
append
(
data
)
finalData
.
append
(
data
)
completionHandler
(
finalData
)
completionHandler
(
finalData
)
}
}
...
@@ -855,7 +858,7 @@ class PhotoAndVideoMananger {
...
@@ -855,7 +858,7 @@ class PhotoAndVideoMananger {
// MARK: - 处理截图数据-------------------------------------------------------
// MARK: - 处理截图数据-------------------------------------------------------
// MARK: - 处理照片数据-------------------------------------------------------
// MARK: - 处理照片数据-------------------------
------------------------------
func
dealImageAssetData
(
completionHandler
:
@escaping
([[
AssetModel
]])
->
Void
){
func
dealImageAssetData
(
completionHandler
:
@escaping
([[
AssetModel
]])
->
Void
){
DispatchQueue
.
global
()
.
async
{
DispatchQueue
.
global
()
.
async
{
var
data
:[
AssetModel
]
=
[]
var
data
:[
AssetModel
]
=
[]
...
@@ -863,6 +866,8 @@ class PhotoAndVideoMananger {
...
@@ -863,6 +866,8 @@ class PhotoAndVideoMananger {
data
.
append
(
AssetModel
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
self
.
findAssetSize
(
asset
:
item
),
createDate
:
item
.
creationDate
!
))
data
.
append
(
AssetModel
(
localIdentifier
:
item
.
localIdentifier
,
assetSize
:
self
.
findAssetSize
(
asset
:
item
),
createDate
:
item
.
creationDate
!
))
}
}
var
finalData
:
[[
AssetModel
]]
=
[]
var
finalData
:
[[
AssetModel
]]
=
[]
// 排序,从大到小
data
=
data
.
sorted
{
$0
.
assetSize
>
$1
.
assetSize
}
finalData
.
append
(
data
)
finalData
.
append
(
data
)
completionHandler
(
finalData
)
completionHandler
(
finalData
)
}
}
...
@@ -886,7 +891,7 @@ class PhotoAndVideoMananger {
...
@@ -886,7 +891,7 @@ class PhotoAndVideoMananger {
// 允许从iCloud请求
// 允许从iCloud请求
options
.
isNetworkAccessAllowed
=
true
options
.
isNetworkAccessAllowed
=
true
// 异步请求
// 异步请求
options
.
isSynchronous
=
tru
e
options
.
isSynchronous
=
fals
e
// 从 PHAsset 获取 AVAsset
// 从 PHAsset 获取 AVAsset
if
let
videoAsset
=
PhotoAndVideoMananger
.
mananger
.
getPHAsssetwithID
(
ids
:
[
ident
.
localIdentifier
]){
if
let
videoAsset
=
PhotoAndVideoMananger
.
mananger
.
getPHAsssetwithID
(
ids
:
[
ident
.
localIdentifier
]){
// 使用requestImageForAsset方法请求视频的第一帧图片
// 使用requestImageForAsset方法请求视频的第一帧图片
...
@@ -919,7 +924,7 @@ class PhotoAndVideoMananger {
...
@@ -919,7 +924,7 @@ class PhotoAndVideoMananger {
semaphore
.
signal
()
semaphore
.
signal
()
}
}
if
let
data
=
imageData
{
if
let
data
=
imageData
{
let
hash
=
Insecure
.
MD5
.
hash
(
data
:
data
)
let
hash
=
SHA256
.
hash
(
data
:
data
)
hashString
=
hash
.
compactMap
{
String
(
format
:
"%02x"
,
$0
)
}
.
joined
()
hashString
=
hash
.
compactMap
{
String
(
format
:
"%02x"
,
$0
)
}
.
joined
()
}
}
}
}
...
...
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