Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
galaxy-iOS
Project
Project
Details
Activity
Releases
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mobile-group
galaxy-iOS
Commits
bffc0a51
Commit
bffc0a51
authored
Mar 31, 2025
by
pete谢兆麟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
整理目录
parent
52d9b311
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
981 additions
and
0 deletions
+981
-0
project.pbxproj
galaxy/galaxy.xcodeproj/project.pbxproj
+80
-0
YHMakePlanViewController.swift
...odules/Plan(方案)/MakePlan/C/YHMakePlanViewController.swift
+118
-0
YHMakePlanBottomView.swift
...es/Modules/Plan(方案)/MakePlan/V/YHMakePlanBottomView.swift
+107
-0
YHMakePlanCardView.swift
...sses/Modules/Plan(方案)/MakePlan/V/YHMakePlanCardView.swift
+148
-0
YHMakePlanCell.swift
.../Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanCell.swift
+107
-0
YHMakePlanCusttomHeadView.swift
...dules/Plan(方案)/MakePlan/V/YHMakePlanCusttomHeadView.swift
+99
-0
YHMakePlanHeadView.swift
...sses/Modules/Plan(方案)/MakePlan/V/YHMakePlanHeadView.swift
+81
-0
YHMakePlanPriceAlertView.swift
...odules/Plan(方案)/MakePlan/V/YHMakePlanPriceAlertView.swift
+0
-0
YHMakePlanSelectAlertView.swift
...dules/Plan(方案)/MakePlan/V/YHMakePlanSelectAlertView.swift
+0
-0
YHMakePlanShareAlertView.swift
...odules/Plan(方案)/MakePlan/V/YHMakePlanShareAlertView.swift
+139
-0
YHMakePlanStateHeadView.swift
...Modules/Plan(方案)/MakePlan/V/YHMakePlanStateHeadView.swift
+102
-0
No files found.
galaxy/galaxy.xcodeproj/project.pbxproj
View file @
bffc0a51
...
...
@@ -1227,6 +1227,16 @@
04B00F8C2D97C07900F640C5
/* YHMakePlanPriceAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00F8B2D97C07900F640C5
/* YHMakePlanPriceAlertView.swift */
;
};
04B00F8E2D97CBD900F640C5
/* YHMakePlanSelectAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00F8D2D97CBD900F640C5
/* YHMakePlanSelectAlertView.swift */
;
};
04B00F902D97D7A700F640C5
/* YHMakePlanShareAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00F8F2D97D7A700F640C5
/* YHMakePlanShareAlertView.swift */
;
};
04B00FBF2D9A420F00F640C5
/* YHMakePlanSelectAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FB92D9A420F00F640C5
/* YHMakePlanSelectAlertView.swift */
;
};
04B00FC02D9A420F00F640C5
/* YHMakePlanBottomView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FB32D9A420F00F640C5
/* YHMakePlanBottomView.swift */
;
};
04B00FC12D9A420F00F640C5
/* YHMakePlanCell.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FB52D9A420F00F640C5
/* YHMakePlanCell.swift */
;
};
04B00FC22D9A420F00F640C5
/* YHMakePlanCardView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FB42D9A420F00F640C5
/* YHMakePlanCardView.swift */
;
};
04B00FC32D9A420F00F640C5
/* YHMakePlanShareAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FBA2D9A420F00F640C5
/* YHMakePlanShareAlertView.swift */
;
};
04B00FC42D9A420F00F640C5
/* YHMakePlanViewController.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FB02D9A420F00F640C5
/* YHMakePlanViewController.swift */
;
};
04B00FC52D9A420F00F640C5
/* YHMakePlanStateHeadView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FBB2D9A420F00F640C5
/* YHMakePlanStateHeadView.swift */
;
};
04B00FC62D9A420F00F640C5
/* YHMakePlanHeadView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FB72D9A420F00F640C5
/* YHMakePlanHeadView.swift */
;
};
04B00FC72D9A420F00F640C5
/* YHMakePlanPriceAlertView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FB82D9A420F00F640C5
/* YHMakePlanPriceAlertView.swift */
;
};
04B00FC82D9A420F00F640C5
/* YHMakePlanCusttomHeadView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04B00FB62D9A420F00F640C5
/* YHMakePlanCusttomHeadView.swift */
;
};
04D8FF552D9258AA00703C75
/* YHPlanScoreView.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04D8FF542D9258AA00703C75
/* YHPlanScoreView.swift */
;
};
04D8FF572D925A0800703C75
/* YHPlanScoreChart.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04D8FF562D925A0800703C75
/* YHPlanScoreChart.swift */
;
};
04D8FF592D925E6700703C75
/* YHPlanModel.swift in Sources */
=
{
isa
=
PBXBuildFile
;
fileRef
=
04D8FF582D925E6700703C75
/* YHPlanModel.swift */
;
};
...
...
@@ -2513,6 +2523,16 @@
04B00F8B2D97C07900F640C5
/* YHMakePlanPriceAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanPriceAlertView.swift
;
sourceTree
=
"<group>"
;
};
04B00F8D2D97CBD900F640C5
/* YHMakePlanSelectAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanSelectAlertView.swift
;
sourceTree
=
"<group>"
;
};
04B00F8F2D97D7A700F640C5
/* YHMakePlanShareAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanShareAlertView.swift
;
sourceTree
=
"<group>"
;
};
04B00FB02D9A420F00F640C5
/* YHMakePlanViewController.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanViewController.swift
;
sourceTree
=
"<group>"
;
};
04B00FB32D9A420F00F640C5
/* YHMakePlanBottomView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanBottomView.swift
;
sourceTree
=
"<group>"
;
};
04B00FB42D9A420F00F640C5
/* YHMakePlanCardView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanCardView.swift
;
sourceTree
=
"<group>"
;
};
04B00FB52D9A420F00F640C5
/* YHMakePlanCell.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanCell.swift
;
sourceTree
=
"<group>"
;
};
04B00FB62D9A420F00F640C5
/* YHMakePlanCusttomHeadView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanCusttomHeadView.swift
;
sourceTree
=
"<group>"
;
};
04B00FB72D9A420F00F640C5
/* YHMakePlanHeadView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanHeadView.swift
;
sourceTree
=
"<group>"
;
};
04B00FB82D9A420F00F640C5
/* YHMakePlanPriceAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanPriceAlertView.swift
;
sourceTree
=
"<group>"
;
};
04B00FB92D9A420F00F640C5
/* YHMakePlanSelectAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanSelectAlertView.swift
;
sourceTree
=
"<group>"
;
};
04B00FBA2D9A420F00F640C5
/* YHMakePlanShareAlertView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanShareAlertView.swift
;
sourceTree
=
"<group>"
;
};
04B00FBB2D9A420F00F640C5
/* YHMakePlanStateHeadView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHMakePlanStateHeadView.swift
;
sourceTree
=
"<group>"
;
};
04D8FF542D9258AA00703C75
/* YHPlanScoreView.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPlanScoreView.swift
;
sourceTree
=
"<group>"
;
};
04D8FF562D925A0800703C75
/* YHPlanScoreChart.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPlanScoreChart.swift
;
sourceTree
=
"<group>"
;
};
04D8FF582D925E6700703C75
/* YHPlanModel.swift */
=
{
isa
=
PBXFileReference
;
lastKnownFileType
=
sourcecode.swift
;
path
=
YHPlanModel.swift
;
sourceTree
=
"<group>"
;
};
...
...
@@ -6672,9 +6692,59 @@
name
=
"Recovered References"
;
sourceTree
=
"<group>"
;
};
04B00FB12D9A420F00F640C5
/* C */
=
{
isa
=
PBXGroup
;
children
=
(
04B00FB02D9A420F00F640C5
/* YHMakePlanViewController.swift */
,
);
path
=
C
;
sourceTree
=
"<group>"
;
};
04B00FB22D9A420F00F640C5
/* M */
=
{
isa
=
PBXGroup
;
children
=
(
);
path
=
M
;
sourceTree
=
"<group>"
;
};
04B00FBC2D9A420F00F640C5
/* V */
=
{
isa
=
PBXGroup
;
children
=
(
04B00FB32D9A420F00F640C5
/* YHMakePlanBottomView.swift */
,
04B00FB42D9A420F00F640C5
/* YHMakePlanCardView.swift */
,
04B00FB52D9A420F00F640C5
/* YHMakePlanCell.swift */
,
04B00FB62D9A420F00F640C5
/* YHMakePlanCusttomHeadView.swift */
,
04B00FB72D9A420F00F640C5
/* YHMakePlanHeadView.swift */
,
04B00FB82D9A420F00F640C5
/* YHMakePlanPriceAlertView.swift */
,
04B00FB92D9A420F00F640C5
/* YHMakePlanSelectAlertView.swift */
,
04B00FBA2D9A420F00F640C5
/* YHMakePlanShareAlertView.swift */
,
04B00FBB2D9A420F00F640C5
/* YHMakePlanStateHeadView.swift */
,
);
path
=
V
;
sourceTree
=
"<group>"
;
};
04B00FBD2D9A420F00F640C5
/* VM */
=
{
isa
=
PBXGroup
;
children
=
(
);
path
=
VM
;
sourceTree
=
"<group>"
;
};
04B00FBE2D9A420F00F640C5
/* MakePlan */
=
{
isa
=
PBXGroup
;
children
=
(
04B00FB12D9A420F00F640C5
/* C */
,
04B00FB22D9A420F00F640C5
/* M */
,
04B00FBC2D9A420F00F640C5
/* V */
,
04B00FBD2D9A420F00F640C5
/* VM */
,
);
path
=
MakePlan
;
sourceTree
=
"<group>"
;
};
04D8FF4F2D9257F700703C75
/* Plan(方案) */
=
{
isa
=
PBXGroup
;
children
=
(
04B00FBE2D9A420F00F640C5
/* MakePlan */
,
04D8FF532D92581300703C75
/* VM */
,
04D8FF522D92580F00703C75
/* M */
,
04D8FF512D92580900703C75
/* V */
,
...
...
@@ -7838,6 +7908,16 @@
045C12432D12CA5F00BD2DC0
/* YHSignAppendStepView.swift in Sources */
,
045C12442D12CA5F00BD2DC0
/* YHWebModel.swift in Sources */
,
045C12452D12CA5F00BD2DC0
/* YHHUDErrorView.swift in Sources */
,
04B00FBF2D9A420F00F640C5
/* YHMakePlanSelectAlertView.swift in Sources */
,
04B00FC02D9A420F00F640C5
/* YHMakePlanBottomView.swift in Sources */
,
04B00FC12D9A420F00F640C5
/* YHMakePlanCell.swift in Sources */
,
04B00FC22D9A420F00F640C5
/* YHMakePlanCardView.swift in Sources */
,
04B00FC32D9A420F00F640C5
/* YHMakePlanShareAlertView.swift in Sources */
,
04B00FC42D9A420F00F640C5
/* YHMakePlanViewController.swift in Sources */
,
04B00FC52D9A420F00F640C5
/* YHMakePlanStateHeadView.swift in Sources */
,
04B00FC62D9A420F00F640C5
/* YHMakePlanHeadView.swift in Sources */
,
04B00FC72D9A420F00F640C5
/* YHMakePlanPriceAlertView.swift in Sources */
,
04B00FC82D9A420F00F640C5
/* YHMakePlanCusttomHeadView.swift in Sources */
,
045C12462D12CA5F00BD2DC0
/* YHPrincleViewModel.swift in Sources */
,
045C12472D12CA5F00BD2DC0
/* YHUploadCertificateListModel.swift in Sources */
,
04307B9B2D1CF5EE00ED8E8D
/* YHGCIncomeRecordSaveWorkModel.swift in Sources */
,
...
...
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/C/YHMakePlanViewController.swift
0 → 100644
View file @
bffc0a51
//
// YHMakePlanViewController.swift
// galaxy
//
// Created by EDY on 2025/3/27.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHMakePlanViewController
:
YHBaseViewController
{
var
items
:
[[
Int
]]
=
[]
let
viewModel
=
YHSchemeViewModel
()
lazy
var
tableView
:
UITableView
=
{
let
tableView
=
UITableView
(
frame
:
.
zero
,
style
:
.
grouped
)
if
#available(iOS 11.0, *)
{
tableView
.
contentInsetAdjustmentBehavior
=
.
never
}
tableView
.
showsVerticalScrollIndicator
=
false
tableView
.
backgroundColor
=
.
clear
tableView
.
separatorStyle
=
.
none
tableView
.
delegate
=
self
tableView
.
dataSource
=
self
tableView
.
register
(
cellWithClass
:
YHMakePlanCell
.
self
)
tableView
.
tableHeaderView
=
YHMakePlanHeadView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
333
.
fix
+
44
))
return
tableView
}()
lazy
var
priceView
:
YHMakePlanBottomView
=
{
let
view
=
YHMakePlanBottomView
()
return
view
}()
override
func
viewDidLoad
()
{
super
.
viewDidLoad
()
// gk_navTitle = "续签至永居方案私人订制"
gk_navTitleColor
=
.
white
gk_navBarAlpha
=
1
// gk_navBackgroundImage = UIImage(named: "my_scheme_nav")
gk_backImage
=
UIImage
(
named
:
"back_icon_white"
)
// Create and add to your view
view
.
addSubview
(
priceView
)
priceView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
98
)
}
// Configure with data
priceView
.
configure
(
price
:
"489800"
)
{
print
(
"Action button tapped!"
)
YHMakePlanShareAlertView
.
show
{
_
in
}
}
self
.
view
.
addSubview
(
tableView
)
tableView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
left
.
right
.
equalToSuperview
()
make
.
bottom
.
equalTo
(
-
98
)
}
requestData
()
}
func
requestData
()
{
tableView
.
reloadData
()
}
func
submitTargets
()
{
}
}
extension
YHMakePlanViewController
:
UITableViewDelegate
,
UITableViewDataSource
{
func
tableView
(
_
tableView
:
UITableView
,
numberOfRowsInSection
section
:
Int
)
->
Int
{
// return items.count
return
4
}
func
tableView
(
_
tableView
:
UITableView
,
cellForRowAt
indexPath
:
IndexPath
)
->
UITableViewCell
{
guard
let
cell
=
tableView
.
dequeueReusableCell
(
withClass
:
YHMakePlanCell
.
self
)
as?
YHMakePlanCell
else
{
return
UITableViewCell
()
}
cell
.
dataSource
=
[
CompanyPackageData
(
title
:
"香港身份申请至永居删除"
,
subtitle
:
"香港高才入境计划申请到永居全流程"
,
companyName
:
""
,
priceTag
:
""
,
price
:
"¥20000.00"
,
showCheckmark
:
true
)]
return
cell
}
func
tableView
(
_
tableView
:
UITableView
,
heightForRowAt
indexPath
:
IndexPath
)
->
CGFloat
{
return
158
+
16
}
func
tableView
(
_
tableView
:
UITableView
,
didSelectRowAt
indexPath
:
IndexPath
)
{
}
func
tableView
(
_
tableView
:
UITableView
,
viewForHeaderInSection
section
:
Int
)
->
UIView
?
{
let
view
=
UIView
()
return
view
}
func
tableView
(
_
tableView
:
UITableView
,
heightForHeaderInSection
section
:
Int
)
->
CGFloat
{
return
0.01
}
func
tableView
(
_
tableView
:
UITableView
,
viewForFooterInSection
section
:
Int
)
->
UIView
?
{
let
view
=
UIView
()
return
view
}
func
tableView
(
_
tableView
:
UITableView
,
heightForFooterInSection
section
:
Int
)
->
CGFloat
{
return
0.01
}
}
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanBottomView.swift
0 → 100644
View file @
bffc0a51
//
// YHMakePlanBottomView.swift
// galaxy
//
// Created by EDY on 2025/3/28.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHMakePlanBottomView
:
UIView
{
// MARK: - UI Elements
private
lazy
var
priceLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
systemFont
(
ofSize
:
24
,
weight
:
.
bold
)
label
.
textColor
=
.
black
label
.
textAlignment
=
.
left
return
label
}()
private
lazy
var
priceButton
:
UIButton
=
{
let
label
=
UIButton
()
label
.
setTitle
(
">"
,
for
:
.
normal
)
label
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
16
,
weight
:
.
medium
)
label
.
setTitleColor
(
UIColor
.
systemBlue
,
for
:
.
normal
)
label
.
addTarget
(
self
,
action
:
#selector(
handleAction
)
,
for
:
.
touchUpInside
)
return
label
}()
private
lazy
var
actionButton
:
UIButton
=
{
let
button
=
UIButton
(
type
:
.
system
)
button
.
setTitle
(
"去办理 →"
,
for
:
.
normal
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
16
,
weight
:
.
medium
)
button
.
setTitleColor
(
UIColor
.
systemBlue
,
for
:
.
normal
)
button
.
addTarget
(
self
,
action
:
#selector(
handleAction
)
,
for
:
.
touchUpInside
)
return
button
}()
// MARK: - Properties
var
price
:
String
=
""
{
didSet
{
priceLabel
.
text
=
"
\(
price
)
"
}
}
var
actionHandler
:
(()
->
Void
)?
// MARK: - Initialization
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setupUI
()
setupConstraints
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
// MARK: - Setup
private
func
setupUI
()
{
backgroundColor
=
.
white
addSubview
(
priceLabel
)
addSubview
(
priceButton
)
addSubview
(
actionButton
)
}
private
func
setupConstraints
()
{
priceLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
20
)
make
.
left
.
equalToSuperview
()
.
offset
(
16
)
make
.
height
.
equalTo
(
28
)
}
priceButton
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
priceLabel
.
snp
.
right
)
make
.
width
.
height
.
equalTo
(
16
)
make
.
centerY
.
equalTo
(
priceLabel
.
snp
.
centerY
)
}
actionButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
9
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
width
.
equalTo
(
120
)
make
.
height
.
equalTo
(
46
)
}
}
// MARK: - Action
@objc
private
func
handleAction
()
{
actionHandler
?()
}
// MARK: - Configuration
func
configure
(
price
:
String
,
actionText
:
String
?
=
nil
,
actionHandler
:
(()
->
Void
)?
=
nil
)
{
self
.
price
=
price
if
let
actionText
=
actionText
{
actionButton
.
setTitle
(
actionText
,
for
:
.
normal
)
}
self
.
actionHandler
=
actionHandler
}
}
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanCardView.swift
0 → 100644
View file @
bffc0a51
//
// YHMakePlanCardView.swift
// galaxy
//
// Created by EDY on 2025/3/28.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHMakePlanCardView
:
UIView
{
// MARK: - UI Elements
private
lazy
var
containerView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
return
view
}()
private
lazy
var
titleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
systemFont
(
ofSize
:
16
,
weight
:
.
semibold
)
label
.
textColor
=
.
darkText
label
.
numberOfLines
=
1
return
label
}()
private
lazy
var
subtitleLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
systemFont
(
ofSize
:
13
,
weight
:
.
regular
)
label
.
textColor
=
.
gray
label
.
numberOfLines
=
2
return
label
}()
private
lazy
var
companyImageView
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
backgroundColor
=
UIColor
(
red
:
0.95
,
green
:
0.95
,
blue
:
0.96
,
alpha
:
1.0
)
return
view
}()
private
lazy
var
storeButton
:
UIButton
=
{
let
button
=
UIButton
()
button
.
setTitle
(
"星企航(7年)"
,
for
:
.
normal
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
16
,
weight
:
.
medium
)
button
.
setTitleColor
(
UIColor
.
systemBlue
,
for
:
.
normal
)
// button.addTarget(self, action: #selector(handleAction), for: .touchUpInside)
return
button
}()
private
lazy
var
priceTagView
:
UILabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
systemFont
(
ofSize
:
14
,
weight
:
.
medium
)
label
.
textColor
=
UIColor
(
red
:
0.2
,
green
:
0.4
,
blue
:
0.8
,
alpha
:
1.0
)
return
label
}()
private
lazy
var
selectButton
:
UIButton
=
{
let
button
=
UIButton
()
button
.
backgroundColor
=
.
red
// button.addTarget(self, action: #selector(handleAction), for: .touchUpInside)
return
button
}()
// MARK: - Initialization
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setupUI
()
setupConstraints
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
// MARK: - Setup
private
func
setupUI
()
{
addSubview
(
containerView
)
containerView
.
addSubview
(
titleLabel
)
containerView
.
addSubview
(
subtitleLabel
)
containerView
.
addSubview
(
companyImageView
)
containerView
.
addSubview
(
priceTagView
)
containerView
.
addSubview
(
storeButton
)
containerView
.
addSubview
(
selectButton
)
}
private
func
setupConstraints
()
{
containerView
.
snp
.
makeConstraints
{
make
in
make
.
edges
.
equalToSuperview
()
}
titleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
110
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
}
subtitleLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
40
)
make
.
left
.
equalToSuperview
()
.
offset
(
110
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
}
companyImageView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
18
)
make
.
left
.
equalTo
(
16
)
make
.
height
.
width
.
equalTo
(
86
)
}
storeButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
60
)
make
.
left
.
equalToSuperview
()
.
offset
(
110
)
make
.
width
.
equalTo
(
97
)
make
.
height
.
equalTo
(
22
)
}
priceTagView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
86
)
make
.
left
.
equalToSuperview
()
.
offset
(
110
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
}
selectButton
.
snp
.
makeConstraints
{
make
in
make
.
right
.
bottom
.
equalTo
(
-
18
)
make
.
height
.
width
.
equalTo
(
16
)
}
}
// MARK: - Configuration
func
configure
(
with
data
:
CompanyPackageData
)
{
titleLabel
.
text
=
data
.
title
subtitleLabel
.
text
=
data
.
subtitle
priceTagView
.
text
=
data
.
price
}
}
struct
CompanyPackageData
{
let
title
:
String
let
subtitle
:
String
let
companyName
:
String
let
priceTag
:
String
let
price
:
String
let
showCheckmark
:
Bool
}
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanCell.swift
0 → 100644
View file @
bffc0a51
//
// YHMakePlanCell.swift
// galaxy
//
// Created by EDY on 2025/3/28.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHMakePlanCell
:
UITableViewCell
{
// typealias InformationBlock = (_ model: YHItemModel) -> Void
var
centerView
:
UIView
!
var
titleLabel
:
UILabel
!
var
mainItemView
:
UIView
!
var
country
:
String
=
""
var
dataSource
:
[
CompanyPackageData
]?
{
didSet
{
updateAllViews
()
}
}
required
init
?(
coder
:
NSCoder
)
{
super
.
init
(
coder
:
coder
)
}
override
init
(
style
:
UITableViewCell
.
CellStyle
,
reuseIdentifier
:
String
?)
{
super
.
init
(
style
:
style
,
reuseIdentifier
:
reuseIdentifier
)
selectionStyle
=
.
none
setupUI
()
}
func
setupUI
()
{
contentView
.
backgroundColor
=
.
clear
backgroundColor
=
.
clear
centerView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
view
.
layer
.
cornerRadius
=
kCornerRadius6
return
view
}()
contentView
.
addSubview
(
centerView
)
centerView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
top
.
equalTo
(
7
)
make
.
bottom
.
equalTo
(
-
7
)
}
titleLabel
=
{
let
label
=
UILabel
()
label
.
font
=
UIFont
.
PFSC_M
(
ofSize
:
15
)
label
.
textColor
=
UIColor
.
mainTextColor
return
label
}()
centerView
.
addSubview
(
titleLabel
)
titleLabel
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
16
)
make
.
height
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
18
)
}
mainItemView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
view
.
layer
.
cornerRadius
=
kCornerRadius6
return
view
}()
centerView
.
addSubview
(
mainItemView
)
mainItemView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
bottom
.
equalToSuperview
()
make
.
top
.
equalTo
(
36
)
}
}
func
updateAllViews
()
{
titleLabel
.
text
=
"基础身份续签"
mainItemView
.
removeSubviews
()
var
y
=
0
for
i
in
0
..<
(
dataSource
?
.
count
??
0
)
{
if
i
!=
0
||
i
!=
(
dataSource
?
.
count
??
0
)
-
1
{
let
line
=
UIView
()
line
.
backgroundColor
=
UIColor
.
separatorColor
mainItemView
.
addSubview
(
line
)
line
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
18
)
make
.
top
.
equalTo
(
y
)
make
.
height
.
equalTo
(
1
)
make
.
right
.
equalTo
(
-
18
)
}
y
+=
1
}
var
h
=
121
let
itemView
=
YHMakePlanCardView
()
itemView
.
configure
(
with
:
CompanyPackageData
(
title
:
"香港身份申请至永居删除"
,
subtitle
:
"香港高才入境计划申请到永居全流程"
,
companyName
:
""
,
priceTag
:
""
,
price
:
"¥20000.00"
,
showCheckmark
:
true
))
mainItemView
.
addSubview
(
itemView
)
itemView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
equalToSuperview
()
make
.
top
.
equalTo
(
y
)
make
.
height
.
equalTo
(
h
)
}
y
+=
h
}
}
}
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanCusttomHeadView.swift
0 → 100644
View file @
bffc0a51
//
// YHMakePlanCusttomHeadView.swift
// galaxy
//
// Created by EDY on 2025/3/27.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHMakePlanCusttomHeadView
:
UIView
{
// Data
private
let
tabs
=
[
"基础身份"
,
"工作联系"
,
"生活联系"
,
"投资联系"
]
private
var
buttons
:
[
UIButton
]
=
[]
private
var
selectedIndex
:
Int
=
0
// UI Components
private
lazy
var
stackView
:
UIStackView
=
{
let
stack
=
UIStackView
()
stack
.
axis
=
.
horizontal
stack
.
distribution
=
.
fillEqually
return
stack
}()
private
let
underlineView
:
UIView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
systemBlue
return
view
}()
// MARK: - Initialization
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setupUI
()
setupConstraints
()
}
required
init
?(
coder
:
NSCoder
)
{
super
.
init
(
coder
:
coder
)
setupUI
()
setupConstraints
()
}
// MARK: - Setup
private
func
setupUI
()
{
backgroundColor
=
.
systemBackground
// Create buttons
tabs
.
enumerated
()
.
forEach
{
index
,
title
in
let
button
=
UIButton
(
type
:
.
system
)
button
.
setTitle
(
title
,
for
:
.
normal
)
button
.
titleLabel
?
.
font
=
UIFont
.
systemFont
(
ofSize
:
14
)
button
.
setTitleColor
(
index
==
0
?
.
systemBlue
:
.
gray
,
for
:
.
normal
)
button
.
tag
=
index
button
.
addTarget
(
self
,
action
:
#selector(
tabTapped(_:)
)
,
for
:
.
touchUpInside
)
buttons
.
append
(
button
)
stackView
.
addArrangedSubview
(
button
)
}
addSubview
(
stackView
)
addSubview
(
underlineView
)
}
private
func
setupConstraints
()
{
stackView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
make
.
leading
.
trailing
.
equalToSuperview
()
make
.
height
.
equalTo
(
40
)
}
underlineView
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
stackView
.
snp
.
bottom
)
make
.
height
.
equalTo
(
2
)
make
.
width
.
equalToSuperview
()
.
dividedBy
(
tabs
.
count
)
make
.
leading
.
equalToSuperview
()
}
}
// MARK: - Actions
@objc
private
func
tabTapped
(
_
sender
:
UIButton
)
{
let
newIndex
=
sender
.
tag
guard
newIndex
!=
selectedIndex
else
{
return
}
// Update colors
buttons
[
selectedIndex
]
.
setTitleColor
(
.
gray
,
for
:
.
normal
)
buttons
[
newIndex
]
.
setTitleColor
(
.
systemBlue
,
for
:
.
normal
)
// Animate underline
UIView
.
animate
(
withDuration
:
0.3
)
{
self
.
underlineView
.
snp
.
updateConstraints
{
make
in
make
.
leading
.
equalToSuperview
()
.
offset
(
sender
.
frame
.
origin
.
x
)
}
self
.
layoutIfNeeded
()
}
selectedIndex
=
newIndex
}
}
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanHeadView.swift
0 → 100644
View file @
bffc0a51
//
// YHMakePlanHeadView.swift
// galaxy
//
// Created by EDY on 2025/3/27.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHMakePlanHeadView
:
UIView
{
private
lazy
var
centerImageView
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
image
=
UIImage
(
named
:
"plan_head_bg"
)
return
view
}()
private
lazy
var
centerView
:
YHMakePlanStateHeadView
=
{
let
view
=
YHMakePlanStateHeadView
()
view
.
backgroundColor
=
.
white
view
.
layer
.
cornerRadius
=
4
return
view
}()
private
lazy
var
logoImageView
:
UIImageView
=
{
let
view
=
UIImageView
()
view
.
image
=
UIImage
(
named
:
"plan_head_logo"
)
return
view
}()
private
lazy
var
custtomView
:
YHMakePlanCusttomHeadView
=
{
let
view
=
YHMakePlanCusttomHeadView
()
return
view
}()
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
backgroundColor
=
UIColor
(
hex
:
0x070E33
)
setUpView
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
update
(
type
:
YHGCApplicationType
,
name
:
String
)
{
}
private
func
setUpView
()
{
addSubview
(
centerImageView
)
addSubview
(
centerView
)
addSubview
(
logoImageView
)
addSubview
(
custtomView
)
centerImageView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
right
.
top
.
equalToSuperview
()
make
.
height
.
equalTo
(
333
.
fix
)
}
centerView
.
snp
.
makeConstraints
{
make
in
make
.
left
.
equalTo
(
16
)
make
.
right
.
equalTo
(
-
16
)
make
.
height
.
equalTo
(
88
)
make
.
bottom
.
equalTo
(
centerImageView
.
snp
.
bottom
)
.
offset
(
-
16
)
}
logoImageView
.
snp
.
makeConstraints
{
make
in
make
.
centerX
.
equalToSuperview
()
make
.
height
.
equalTo
(
109
)
make
.
width
.
equalTo
(
272
)
make
.
top
.
equalTo
(
96
)
}
custtomView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
44
)
}
}
}
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanPriceAlertView.swift
0 → 100644
View file @
bffc0a51
This diff is collapsed.
Click to expand it.
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanSelectAlertView.swift
0 → 100644
View file @
bffc0a51
This diff is collapsed.
Click to expand it.
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanShareAlertView.swift
0 → 100644
View file @
bffc0a51
//
// YHMakePlanShareAlertView.swift
// galaxy
//
// Created by EDY on 2025/3/29.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHMakePlanShareAlertView
:
UIView
{
typealias
Block
=
(
Int
)
->
Void
var
block
:
Block
?
var
centerView
:
UIView
!
var
sureButton
:
UIButton
!
var
leftButton
:
YHShareButton
!
var
rightButton
:
YHShareButton
!
static
func
show
(
callBack
:
@escaping
((
Int
)
->
Void
))
{
let
view
=
YHMakePlanShareAlertView
(
frame
:
CGRect
(
x
:
0
,
y
:
0
,
width
:
KScreenWidth
,
height
:
KScreenHeight
))
view
.
block
=
callBack
let
window
=
UIApplication
.
shared
.
yhKeyWindow
()
window
?
.
addSubview
(
view
)
}
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
backgroundColor
=
UIColor
(
white
:
0.5
,
alpha
:
0.1
)
let
tap
=
UITapGestureRecognizer
(
target
:
self
,
action
:
#selector(
handleTap
)
)
tap
.
delegate
=
self
addGestureRecognizer
(
tap
)
setView
()
}
required
init
?(
coder
:
NSCoder
)
{
fatalError
(
"init(coder:) has not been implemented"
)
}
func
setView
()
{
backgroundColor
=
UIColor
(
hex
:
0x0000
,
alpha
:
0.5
)
centerView
=
{
let
view
=
UIView
()
view
.
backgroundColor
=
.
white
view
.
layer
.
cornerRadius
=
kCornerRadius3
return
view
}()
addSubview
(
centerView
)
centerView
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
left
.
right
.
equalToSuperview
()
make
.
height
.
equalTo
(
216
)
}
sureButton
=
{
let
button
=
UIButton
(
type
:
.
custom
)
button
.
backgroundColor
=
.
black
button
.
addTarget
(
self
,
action
:
#selector(
dismiss
)
,
for
:
.
touchUpInside
)
return
button
}()
centerView
.
addSubview
(
sureButton
)
sureButton
.
snp
.
makeConstraints
{
make
in
make
.
bottom
.
equalTo
(
-
54
)
make
.
left
.
equalTo
(
20
)
make
.
right
.
equalTo
(
-
20
)
make
.
height
.
equalTo
(
46
)
}
leftButton
=
{
let
button
=
YHShareButton
()
button
.
setContent
(
"invitation_with_gifts_share_center"
,
"微信好友"
)
button
.
addTarget
(
self
,
action
:
#selector(
peopleClick
)
,
for
:
.
touchUpInside
)
return
button
}()
centerView
.
addSubview
(
leftButton
)
leftButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
20
)
make
.
right
.
equalTo
(
centerView
.
snp
.
centerX
)
.
offset
(
-
33
)
make
.
height
.
equalTo
(
74
)
make
.
width
.
equalTo
(
52
)
}
rightButton
=
{
let
button
=
YHShareButton
()
button
.
setContent
(
"invitation_with_gifts_share_center"
,
"复制链接"
)
button
.
addTarget
(
self
,
action
:
#selector(
wxClick
)
,
for
:
.
touchUpInside
)
return
button
}()
centerView
.
addSubview
(
rightButton
)
rightButton
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
20
)
make
.
left
.
equalTo
(
centerView
.
snp
.
centerX
)
.
offset
(
33
)
make
.
height
.
equalTo
(
74
)
make
.
width
.
equalTo
(
52
)
}
}
@objc
func
wxClick
()
{
// guard let combinedImage = combinedImageFrom(imageView: centerImageView) else { return }
YHShareManager
.
shared
.
sendLinkContent
(
"香港身份规划专属礼包,限时领取!"
,
"资深银河规划专家1V1评估方案"
,
UIImage
(
named
:
"invitation_with_gifts_share_other"
)
??
UIImage
(),
link
:
YHBaseUrlManager
.
shared
.
curH5URL
()
+
"superAppBridge.html#/evaluation?channel=lkhtj-app&customer_id=
\(
YHLoginManager
.
shared
.
userModel
?
.
id
??
""
)
&scene_id=30"
)
// YHShareManager.shared.sendImageContent(combinedImage)
}
@objc
func
peopleClick
()
{
// guard let combinedImage = combinedImageFrom(imageView: centerImageView) else { return }
// YHShareManager.shared.sendImageContent(combinedImage, WXSceneTimeline)
YHShareManager
.
shared
.
sendLinkContent
(
"香港身份规划专属礼包,限时领取!"
,
"资深银河规划专家1V1评估方案"
,
UIImage
(
named
:
"invitation_with_gifts_share_other"
)
??
UIImage
(),
link
:
YHBaseUrlManager
.
shared
.
curH5URL
()
+
"superAppBridge.html#/evaluation?channel=lkhtj-app&customer_id=
\(
YHLoginManager
.
shared
.
userModel
?
.
id
??
""
)
&scene_id=30"
,
WXSceneTimeline
)
}
@objc
private
func
handleTap
(
_
sender
:
AnyObject
?)
{
dismiss
()
}
@objc
func
dismiss
()
{
removeFromSuperview
()
}
@objc
func
orderButtonClick
()
{
if
let
block
=
block
{
block
(
1
)
}
dismiss
()
}
@objc
func
guideButtonClick
()
{
if
let
block
=
block
{
block
(
2
)
}
dismiss
()
}
}
extension
YHMakePlanShareAlertView
:
UIGestureRecognizerDelegate
{
func
gestureRecognizer
(
_
gestureRecognizer
:
UIGestureRecognizer
,
shouldReceive
touch
:
UITouch
)
->
Bool
{
if
touch
.
view
==
self
{
return
true
}
return
false
}
}
galaxy/galaxy/Classes/Modules/Plan(方案)/MakePlan/V/YHMakePlanStateHeadView.swift
0 → 100644
View file @
bffc0a51
//
// YHMakePlanStateHeadView.swift
// galaxy
//
// Created by EDY on 2025/3/27.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import
UIKit
class
YHMakePlanStateHeadView
:
UIView
{
// MARK: - UI Components
private
let
yearsLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"5"
label
.
font
=
.
boldSystemFont
(
ofSize
:
32
)
label
.
textColor
=
.
label
label
.
textAlignment
=
.
center
return
label
}()
private
let
yearsDescriptionLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"预计可续期(年)"
label
.
font
=
.
systemFont
(
ofSize
:
14
)
label
.
textColor
=
.
secondaryLabel
label
.
textAlignment
=
.
center
return
label
}()
private
let
percentageLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"90%"
label
.
font
=
.
boldSystemFont
(
ofSize
:
32
)
label
.
textColor
=
.
label
label
.
textAlignment
=
.
center
return
label
}()
private
let
progressDescriptionLabel
:
UILabel
=
{
let
label
=
UILabel
()
label
.
text
=
"续签综合通过率"
label
.
font
=
.
systemFont
(
ofSize
:
14
)
label
.
textColor
=
.
secondaryLabel
label
.
textAlignment
=
.
center
return
label
}()
// MARK: - Initialization
override
init
(
frame
:
CGRect
)
{
super
.
init
(
frame
:
frame
)
setupView
()
setupConstraints
()
}
required
init
?(
coder
:
NSCoder
)
{
super
.
init
(
coder
:
coder
)
setupView
()
setupConstraints
()
}
// MARK: - Setup
private
func
setupView
()
{
addSubview
(
yearsLabel
)
addSubview
(
yearsDescriptionLabel
)
addSubview
(
percentageLabel
)
addSubview
(
progressDescriptionLabel
)
}
private
func
setupConstraints
()
{
yearsLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
left
.
equalToSuperview
()
.
offset
(
16
)
make
.
right
.
equalTo
(
self
.
snp
.
centerX
)
}
yearsDescriptionLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
yearsLabel
.
snp
.
bottom
)
.
offset
(
4
)
make
.
left
.
equalToSuperview
()
.
offset
(
16
)
make
.
right
.
equalTo
(
self
.
snp
.
centerX
)
}
percentageLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalToSuperview
()
.
offset
(
16
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalTo
(
self
.
snp
.
centerX
)
}
progressDescriptionLabel
.
snp
.
makeConstraints
{
make
in
make
.
top
.
equalTo
(
percentageLabel
.
snp
.
bottom
)
.
offset
(
4
)
make
.
right
.
equalToSuperview
()
.
offset
(
-
16
)
make
.
left
.
equalTo
(
self
.
snp
.
centerX
)
}
}
// MARK: - Configuration
func
configure
(
years
:
Int
,
percentage
:
Float
)
{
yearsLabel
.
text
=
"
\(
years
)
"
percentageLabel
.
text
=
"
\(
Int
(
percentage
*
100
)
)
%"
}
}
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