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
fe59c4f0
Commit
fe59c4f0
authored
Apr 03, 2025
by
CZ1004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
项目位置
parent
1cc0c07d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
293 additions
and
309 deletions
+293
-309
CompressQualityController.swift
...er/Class/Session/Compress/CompressQualityController.swift
+0
-170
CompressCompletedViewController.swift
...Compress/Controller/CompressCompletedViewController.swift
+2
-0
CompressController.swift
...lass/Session/Compress/Controller/CompressController.swift
+291
-0
CompressSelectCell.swift
...Class/Session/Compress/View/Cell/CompressSelectCell.swift
+0
-139
No files found.
PhoneManager/Class/Session/Compress/CompressQualityController.swift
deleted
100644 → 0
View file @
1cc0c07d
//
// CompressQualityController.swift
// PhoneManager
//
// Created by edy on 2025/4/2.
//
import
Foundation
class
CompressQualityController
:
BaseViewController
{
var
model
:
ResourceModel
?
{
didSet
{
let
image
=
PhotoAndVideoMananger
.
mananger
.
getImageFromAssetID
(
id
:
model
!.
ident
)
self
.
imageView
.
image
=
image
}
}
private
var
compressNav
:
CompressNavView
?
lazy
var
imageView
:
UIImageView
=
{
let
imageView
=
UIImageView
()
imageView
.
clipsToBounds
=
true
imageView
.
layer
.
cornerRadius
=
12
imageView
.
backgroundColor
=
.
clear
return
imageView
}()
lazy
var
tipLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"Select photo quality after compression"
label
.
textAlignment
=
.
left
label
.
font
=
UIFont
.
systemFont
(
ofSize
:
16
,
weight
:
.
bold
)
label
.
backgroundColor
=
.
clear
return
label
}()
lazy
var
detailTiplabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"You've selected 2 out of 253 photos to compress."
label
.
textAlignment
=
.
left
label
.
font
=
UIFont
.
systemFont
(
ofSize
:
12
,
weight
:
.
regular
)
label
.
backgroundColor
=
.
clear
return
label
}()
lazy
var
lowQualityView
:
QualityView
=
{
let
view
=
QualityView
()
view
.
selectedImageView
.
image
=
UIImage
(
named
:
"ic_unsel_com"
)
return
view
}()
lazy
var
mediumQualityView
:
QualityView
=
{
let
view
=
QualityView
()
view
.
tipLabel
.
text
=
"Medium quality"
view
.
detailTiplabel
.
text
=
"Compress up to 50% of the size"
return
view
}()
lazy
var
highQualityView
:
QualityView
=
{
let
view
=
QualityView
()
view
.
tipLabel
.
text
=
"High quality"
view
.
detailTiplabel
.
text
=
"Compress up to 20% of the size"
return
view
}()
lazy
var
submitButton
:
UIButton
=
{
let
view
=
UIButton
()
view
.
setTitle
(
"Compress"
,
for
:
UIControl
.
State
.
normal
)
view
.
setTitleColor
(
UIColor
(
red
:
1
,
green
:
1
,
blue
:
1
,
alpha
:
1
),
for
:
.
normal
)
view
.
clipsToBounds
=
true
view
.
layer
.
cornerRadius
=
23
view
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
view
.
addTarget
(
self
,
action
:
#selector(
submitAction
)
,
for
:
.
touchUpInside
)
return
view
}()
func
setUI
(){
compressNav
=
CompressNavView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
width
,
height
:
statusBarHeight
+
44
))
self
.
view
.
addSubview
(
compressNav
!
)
compressNav
?
.
snp
.
makeConstraints
({
make
in
make
.
top
.
centerX
.
width
.
equalToSuperview
()
make
.
height
.
equalTo
(
statusBarHeight
+
44
)
})
self
.
view
.
addSubview
(
self
.
imageView
)
self
.
view
.
addSubview
(
self
.
tipLabel
)
self
.
view
.
addSubview
(
self
.
detailTiplabel
)
self
.
view
.
addSubview
(
self
.
lowQualityView
)
self
.
view
.
addSubview
(
self
.
mediumQualityView
)
self
.
view
.
addSubview
(
self
.
highQualityView
)
self
.
view
.
addSubview
(
self
.
submitButton
)
self
.
imageView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
self
.
compressNav
!.
height
+
20
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
259
)
}
self
.
tipLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
self
.
imageView
.
snp
.
bottom
)
.
offset
(
28
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
22
)
}
self
.
detailTiplabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
self
.
tipLabel
.
snp
.
bottom
)
.
offset
(
4
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
17
)
}
self
.
lowQualityView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
self
.
detailTiplabel
.
snp
.
bottom
)
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
61
)
}
self
.
mediumQualityView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
self
.
lowQualityView
.
snp
.
bottom
)
.
offset
(
12
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
61
)
}
self
.
highQualityView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
self
.
mediumQualityView
.
snp
.
bottom
)
.
offset
(
12
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
61
)
}
self
.
submitButton
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalTo
(
-
40
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
46
)
}
}
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
view
.
backgroundColor
=
.
white
self
.
navigationController
?
.
navigationBar
.
isHidden
=
true
setUI
()
}
@objc
func
submitAction
(){
let
compressingView
:
CompressingView
=
CompressingView
(
frame
:
self
.
view
.
bounds
)
self
.
view
.
addSubview
(
compressingView
)
let
queue
=
DispatchQueue
.
global
()
let
delayTime
=
DispatchTime
.
now
()
+
3.0
queue
.
asyncAfter
(
deadline
:
delayTime
)
{
DispatchQueue
.
main
.
async
{
compressingView
.
removeFromSuperview
()
let
vc
=
CompressCompletedViewController
()
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
}
}
PhoneManager/Class/Session/Compress/CompressCompletedViewController.swift
→
PhoneManager/Class/Session/Compress/Co
ntroller/Co
mpressCompletedViewController.swift
View file @
fe59c4f0
...
@@ -9,6 +9,8 @@ import Foundation
...
@@ -9,6 +9,8 @@ import Foundation
class
CompressCompletedViewController
:
BaseViewController
{
class
CompressCompletedViewController
:
BaseViewController
{
var
model
:
[
ResourceModel
]?
lazy
var
imageView
:
UIImageView
=
{
lazy
var
imageView
:
UIImageView
=
{
let
imageView
=
UIImageView
()
let
imageView
=
UIImageView
()
imageView
.
clipsToBounds
=
true
imageView
.
clipsToBounds
=
true
...
...
PhoneManager/Class/Session/Compress/Controller/CompressController.swift
0 → 100644
View file @
fe59c4f0
//
// CompressController.swift
// PhoneManager
//
// Created by edy on 2025/4/2.
//
import
Foundation
import
SnapKit
import
Photos
class
CompressController
:
BaseViewController
{
private
var
compressNav
:
CompressNavView
?
// 排序
var
currentSort
:
Int
=
0
{
didSet
{
clearSelected
()
}
}
// 资源类型 - 相册或者视频
var
currentResourceType
:
Int
=
0
// 所有的数据
var
resourceData
=
[
ResourceModel
](){
didSet
{
DispatchQueue
.
main
.
async
{
self
.
collectionView
.
reloadData
()
}
}
}
// 当前页面选中的
var
selectedModel
:
[
ResourceModel
]
=
[]
lazy
var
collectionView
:
UICollectionView
=
{
let
layout
=
WaterfallMutiSectionFlowLayout
()
layout
.
delegate
=
self
let
sview
:
UICollectionView
=
UICollectionView
.
init
(
frame
:
CGRect
(
x
:
marginLR
,
y
:
self
.
compressNav
!.
height
,
width
:
self
.
view
.
width
-
2
*
marginLR
,
height
:
self
.
view
.
height
-
self
.
compressNav
!.
height
-
102
),
collectionViewLayout
:
layout
)
sview
.
register
(
CompressSelectCell
.
self
,
forCellWithReuseIdentifier
:
"CompressSelectCell"
)
sview
.
register
(
CompressCustomHeaderView
.
self
,
forSupplementaryViewOfKind
:
UICollectionView
.
elementKindSectionHeader
,
withReuseIdentifier
:
"CompressCustomHeaderView"
)
sview
.
register
(
UICollectionReusableView
.
self
,
forSupplementaryViewOfKind
:
UICollectionView
.
elementKindSectionFooter
,
withReuseIdentifier
:
"footerID"
)
sview
.
dataSource
=
self
sview
.
delegate
=
self
sview
.
showsVerticalScrollIndicator
=
false
if
#available(iOS 11.0, *)
{
sview
.
contentInsetAdjustmentBehavior
=
.
never
}
sview
.
backgroundColor
=
.
clear
return
sview
}()
lazy
var
submitButton
:
UIButton
=
{
let
view
=
UIButton
()
view
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
view
.
setTitle
(
"Compress"
,
for
:
UIControl
.
State
.
normal
)
view
.
setTitleColor
(
UIColor
(
red
:
1
,
green
:
1
,
blue
:
1
,
alpha
:
1
),
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(
startCompress
)
,
for
:
.
touchUpInside
)
return
view
}()
func
setUI
(){
compressNav
=
CompressNavView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
self
.
view
.
width
,
height
:
statusBarHeight
+
44
))
self
.
view
.
addSubview
(
compressNav
!
)
compressNav
?
.
snp
.
makeConstraints
({
make
in
make
.
top
.
centerX
.
width
.
equalToSuperview
()
make
.
height
.
equalTo
(
statusBarHeight
+
44
)
})
self
.
view
.
insertSubview
(
collectionView
,
at
:
0
)
self
.
view
.
addSubview
(
self
.
submitButton
)
self
.
submitButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
self
.
collectionView
.
snp
.
bottom
)
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
15
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
15
)
make
.
height
.
equalTo
(
46
)
}
}
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
view
.
backgroundColor
=
.
white
self
.
navigationController
?
.
navigationBar
.
isHidden
=
true
setUI
()
}
override
func
viewWillAppear
(
_
animated
:
Bool
)
{
super
.
viewWillAppear
(
animated
)
// 这里默认去请求下当前的数据资源
let
viewModel
=
CompressViewModel
()
viewModel
.
getAllPhotos
{[
weak
self
]
models
in
guard
let
self
else
{
return
}
self
.
resourceData
=
models
}
}
}
extension
CompressController
:
WaterfallMutiSectionDelegate
,
UICollectionViewDataSource
,
UICollectionViewDelegate
{
func
numberOfSections
(
in
collectionView
:
UICollectionView
)
->
Int
{
return
1
}
func
collectionView
(
_
collectionView
:
UICollectionView
,
numberOfItemsInSection
section
:
Int
)
->
Int
{
return
self
.
resourceData
.
count
}
func
collectionView
(
_
collectionView
:
UICollectionView
,
cellForItemAt
indexPath
:
IndexPath
)
->
UICollectionViewCell
{
let
cell
=
collectionView
.
dequeueReusableCell
(
withReuseIdentifier
:
"CompressSelectCell"
,
for
:
indexPath
)
as!
CompressSelectCell
cell
.
model
=
self
.
resourceData
[
indexPath
.
row
]
if
self
.
selectedModel
.
count
==
0
{
cell
.
choose
=
false
}
cell
.
callBack
=
{[
weak
self
]
(
model
:
ResourceModel
,
choose
:
Bool
)
->
()
in
guard
let
self
else
{
return
}
// 这里临时管理一个当前选择的资源
if
choose
==
true
&&
!
self
.
selectedModel
.
contains
(
model
)
{
self
.
selectedModel
.
append
(
model
)
}
if
choose
==
false
&&
self
.
selectedModel
.
contains
(
model
){
if
let
index
=
selectedModel
.
firstIndex
(
of
:
model
)
{
selectedModel
.
remove
(
at
:
index
)
}
}
DispatchQueue
.
main
.
async
{
// 选择完成后检查选择的是否有值,有值则变换底部的按钮
self
.
updateSubmitButton
()
}
}
return
cell
}
func
heightForRowAtIndexPath
(
collectionView
collection
:
UICollectionView
,
layout
:
WaterfallMutiSectionFlowLayout
,
indexPath
:
IndexPath
,
itemWidth
:
CGFloat
)
->
CGFloat
{
if
indexPath
.
row
%
2
==
0
{
return
itemWidth
}
return
itemWidth
+
67
}
func
columnNumber
(
collectionView
collection
:
UICollectionView
,
layout
:
WaterfallMutiSectionFlowLayout
,
section
:
Int
)
->
Int
{
return
2
}
func
lineSpacing
(
collectionView
collection
:
UICollectionView
,
layout
:
WaterfallMutiSectionFlowLayout
,
section
:
Int
)
->
CGFloat
{
return
8
}
func
interitemSpacing
(
collectionView
collection
:
UICollectionView
,
layout
:
WaterfallMutiSectionFlowLayout
,
section
:
Int
)
->
CGFloat
{
return
11
}
func
spacingWithLastSection
(
collectionView
collection
:
UICollectionView
,
layout
:
WaterfallMutiSectionFlowLayout
,
section
:
Int
)
->
CGFloat
{
return
8
}
func
collectionView
(
_
collectionView
:
UICollectionView
,
didSelectItemAt
indexPath
:
IndexPath
)
{
}
func
referenceSizeForHeader
(
collectionView
collection
:
UICollectionView
,
layout
:
WaterfallMutiSectionFlowLayout
,
section
:
Int
)
->
CGSize
{
return
CGSize
(
width
:
self
.
collectionView
.
width
,
height
:
188
)
}
func
collectionView
(
_
collectionView
:
UICollectionView
,
viewForSupplementaryElementOfKind
kind
:
String
,
at
indexPath
:
IndexPath
)
->
UICollectionReusableView
{
if
kind
==
UICollectionView
.
elementKindSectionHeader
{
let
header
=
collectionView
.
dequeueReusableSupplementaryView
(
ofKind
:
kind
,
withReuseIdentifier
:
"CompressCustomHeaderView"
,
for
:
indexPath
)
as!
CompressCustomHeaderView
header
.
callBack
=
{[
weak
self
]
text
in
guard
let
self
else
{
return
}
let
sortView
=
CompressSortView
(
frame
:
self
.
view
.
bounds
)
// 这两行是为了进入页面的时候选中
sortView
.
currentIndex
=
self
.
currentSort
sortView
.
tableView
.
reloadData
()
self
.
view
.
addSubview
(
sortView
)
sortView
.
callBack
=
{[
weak
self
]
sortType
in
guard
let
self
else
{
return
}
self
.
currentSort
=
sortType
as!
Int
self
.
sortByType
(
sortType
:
self
.
currentSort
,
header
:
header
)
}
}
header
.
modeData
=
self
.
resourceData
return
header
}
else
{
let
footer
=
collectionView
.
dequeueReusableSupplementaryView
(
ofKind
:
kind
,
withReuseIdentifier
:
"footerID"
,
for
:
indexPath
)
return
footer
}
}
func
sortByType
(
sortType
:
Int
,
header
:
CompressCustomHeaderView
){
let
viewModel
=
CompressViewModel
()
switch
sortType
{
case
0
:
header
.
selectlabel
.
text
=
"Largest"
// 按照文件大小降序
self
.
resourceData
=
viewModel
.
sortRsource
(
resource
:
self
.
resourceData
,
sortType
:
1
,
sortKind
:
0
)
break
case
1
:
header
.
selectlabel
.
text
=
"Smallest"
// 按照文件大小升序
self
.
resourceData
=
viewModel
.
sortRsource
(
resource
:
self
.
resourceData
,
sortType
:
0
,
sortKind
:
0
)
break
case
2
:
header
.
selectlabel
.
text
=
"Newest"
// 按照时间降序
self
.
resourceData
=
viewModel
.
sortRsource
(
resource
:
self
.
resourceData
,
sortType
:
1
,
sortKind
:
1
)
break
case
3
:
header
.
selectlabel
.
text
=
"Oldest"
// 按照时间升序
self
.
resourceData
=
viewModel
.
sortRsource
(
resource
:
self
.
resourceData
,
sortType
:
0
,
sortKind
:
1
)
break
default
:
break
}
}
func
updateSubmitButton
(){
if
self
.
selectedModel
.
count
>
0
{
self
.
submitButton
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
if
self
.
currentResourceType
==
0
{
self
.
submitButton
.
setTitle
(
"Compress
\(
self
.
selectedModel
.
count
)
photos"
,
for
:
UIControl
.
State
.
normal
)
}
else
{
self
.
submitButton
.
setTitle
(
"Compress
\(
self
.
selectedModel
.
count
)
videos"
,
for
:
UIControl
.
State
.
normal
)
}
self
.
submitButton
.
setTitleColor
(
.
white
,
for
:
.
normal
)
}
else
{
self
.
submitButton
.
backgroundColor
=
UIColor
(
red
:
0.7
,
green
:
0.7
,
blue
:
0.7
,
alpha
:
1
)
self
.
submitButton
.
setTitle
(
"Compress"
,
for
:
UIControl
.
State
.
normal
)
self
.
submitButton
.
setTitleColor
(
UIColor
(
red
:
1
,
green
:
1
,
blue
:
1
,
alpha
:
1
),
for
:
.
normal
)
}
}
@objc
func
startCompress
(){
// 如果没有不进行下一步操作
if
self
.
selectedModel
.
count
==
0
{
return
}
// 先将值传到下一个页面
let
vc
:
CompressQualityController
=
CompressQualityController
()
vc
.
model
=
self
.
selectedModel
vc
.
detailTiplabel
.
text
=
"You've selected
\(
self
.
selectedModel
.
count
)
out of
\(
self
.
resourceData
.
count
)
photos to compress."
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
// 然后清理下当前页面的值
clearSelected
()
}
func
clearSelected
()
{
self
.
selectedModel
.
removeAll
()
self
.
updateSubmitButton
()
}
}
PhoneManager/Class/Session/Compress/View/Cell/CompressSelectCell.swift
deleted
100644 → 0
View file @
1cc0c07d
//
// CompressSelectCell.swift
// PhoneManager
//
// Created by edy on 2025/4/2.
//
import
Foundation
typealias
CompressSelectCellCallback
=
(
ResourceModel
,
Bool
)
->
Void
class
CompressSelectCell
:
UICollectionViewCell
{
var
callBack
:
CompressSelectCellCallback
=
{
model
,
choose
in
}
var
model
:
ResourceModel
?
{
didSet
{
guard
let
model
=
self
.
model
else
{
return
}
let
image
=
PhotoAndVideoMananger
.
mananger
.
getImageFromAssetID
(
id
:
model
.
ident
)
self
.
backImageView
.
image
=
image
self
.
saveSizeLabel
.
text
=
String
(
format
:
"Save %.2f MB"
,
Double
(
model
.
saveSize
)
/
1024.0
)
}
}
var
choose
:
Bool
=
false
{
didSet
{
}
}
lazy
var
backImageView
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
isUserInteractionEnabled
=
true
view
.
contentMode
=
.
scaleAspectFill
view
.
clipsToBounds
=
true
view
.
layer
.
masksToBounds
=
true
view
.
layer
.
cornerRadius
=
12
return
view
}()
lazy
var
saveSizeView
:
UIView
=
{
let
view
=
UIView
()
view
.
layer
.
masksToBounds
=
true
view
.
layer
.
cornerRadius
=
4
view
.
backgroundColor
=
UIColor
(
red
:
0
,
green
:
0.51
,
blue
:
1
,
alpha
:
1
)
return
view
}()
lazy
var
saveSizeLabel
:
UILabel
=
{
let
view
=
UILabel
()
view
.
textAlignment
=
.
left
view
.
textColor
=
UIColor
(
red
:
1
,
green
:
1
,
blue
:
1
,
alpha
:
1
)
view
.
font
=
UIFont
.
systemFont
(
ofSize
:
12
,
weight
:
.
regular
)
view
.
text
=
"Save 1.3MB"
return
view
}()
lazy
var
moreImageView
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
image
=
UIImage
(
named
:
"icon_left_setting_grey"
)
view
.
backgroundColor
=
.
clear
return
view
}()
lazy
var
selectImageView
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
image
=
UIImage
(
named
:
"ic_sel_com"
)
view
.
backgroundColor
=
.
clear
view
.
isUserInteractionEnabled
=
true
let
tap
=
UITapGestureRecognizer
()
tap
.
addTarget
(
self
,
action
:
#selector(
selectClick
)
)
view
.
addGestureRecognizer
(
tap
)
return
view
}()
@objc
func
selectClick
(){
self
.
choose
=
!
self
.
choose
if
choose
{
self
.
selectImageView
.
image
=
UIImage
(
named
:
"ic_unsel_com"
)
}
else
{
self
.
selectImageView
.
image
=
UIImage
(
named
:
"ic_sel_com"
)
}
callBack
(
self
.
model
!
,
self
.
choose
)
}
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
self
.
addSubview
(
self
.
backImageView
)
self
.
addSubview
(
self
.
saveSizeView
)
self
.
saveSizeView
.
addSubview
(
self
.
saveSizeLabel
)
self
.
saveSizeView
.
addSubview
(
self
.
moreImageView
)
self
.
addSubview
(
self
.
selectImageView
)
self
.
backImageView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
height
.
width
.
equalToSuperview
()
}
self
.
saveSizeView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
12
)
make
.
bottom
.
equalToSuperview
()
.
offset
(
-
12
)
make
.
height
.
equalTo
(
48
)
make
.
width
.
equalTo
(
120
)
}
self
.
saveSizeLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalToSuperview
()
.
offset
(
8
)
make
.
centerY
.
equalToSuperview
()
make
.
height
.
equalTo
(
48
)
make
.
width
.
equalTo
(
120
)
}
self
.
moreImageView
.
snp
.
makeConstraints
{
make
in
make
.
right
.
equalToSuperview
()
.
offset
(
-
4
)
make
.
centerY
.
equalToSuperview
()
make
.
height
.
width
.
equalTo
(
16
)
}
self
.
selectImageView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
right
.
equalToSuperview
()
.
offset
(
-
12
)
make
.
height
.
width
.
equalTo
(
24
)
}
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
}
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