Commit fd4807c3 authored by pete谢兆麟's avatar pete谢兆麟
parents 328a8570 aa8f8b3c
...@@ -1246,6 +1246,7 @@ ...@@ -1246,6 +1246,7 @@
04D8FF6D2D94EE1100703C75 /* YHLookPlanButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF6C2D94EE1100703C75 /* YHLookPlanButton.swift */; }; 04D8FF6D2D94EE1100703C75 /* YHLookPlanButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF6C2D94EE1100703C75 /* YHLookPlanButton.swift */; };
04D8FF6F2D954D9B00703C75 /* YHPlanPolicyCarouselView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF6E2D954D9B00703C75 /* YHPlanPolicyCarouselView.swift */; }; 04D8FF6F2D954D9B00703C75 /* YHPlanPolicyCarouselView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF6E2D954D9B00703C75 /* YHPlanPolicyCarouselView.swift */; };
04D8FF712D9550E700703C75 /* YHPlanPolicyCarouselImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF702D9550E700703C75 /* YHPlanPolicyCarouselImageCell.swift */; }; 04D8FF712D9550E700703C75 /* YHPlanPolicyCarouselImageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF702D9550E700703C75 /* YHPlanPolicyCarouselImageCell.swift */; };
04D8FF732D96759400703C75 /* YHPlanScoreLevelTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04D8FF722D96759400703C75 /* YHPlanScoreLevelTextView.swift */; };
04E4CF3E2D5C6D32004D4013 /* YHCountryMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E4CF3D2D5C6D32004D4013 /* YHCountryMessageView.swift */; }; 04E4CF3E2D5C6D32004D4013 /* YHCountryMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E4CF3D2D5C6D32004D4013 /* YHCountryMessageView.swift */; };
04E4CF402D5C83AE004D4013 /* YHSelectPhoneCountryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E4CF3F2D5C83AE004D4013 /* YHSelectPhoneCountryViewController.swift */; }; 04E4CF402D5C83AE004D4013 /* YHSelectPhoneCountryViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E4CF3F2D5C83AE004D4013 /* YHSelectPhoneCountryViewController.swift */; };
04E507D62D6EE856005F758B /* YHUserLevelAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E507D52D6EE856005F758B /* YHUserLevelAlertView.swift */; }; 04E507D62D6EE856005F758B /* YHUserLevelAlertView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04E507D52D6EE856005F758B /* YHUserLevelAlertView.swift */; };
...@@ -2531,6 +2532,7 @@ ...@@ -2531,6 +2532,7 @@
04D8FF6C2D94EE1100703C75 /* YHLookPlanButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHLookPlanButton.swift; sourceTree = "<group>"; }; 04D8FF6C2D94EE1100703C75 /* YHLookPlanButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHLookPlanButton.swift; sourceTree = "<group>"; };
04D8FF6E2D954D9B00703C75 /* YHPlanPolicyCarouselView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanPolicyCarouselView.swift; sourceTree = "<group>"; }; 04D8FF6E2D954D9B00703C75 /* YHPlanPolicyCarouselView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanPolicyCarouselView.swift; sourceTree = "<group>"; };
04D8FF702D9550E700703C75 /* YHPlanPolicyCarouselImageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanPolicyCarouselImageCell.swift; sourceTree = "<group>"; }; 04D8FF702D9550E700703C75 /* YHPlanPolicyCarouselImageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanPolicyCarouselImageCell.swift; sourceTree = "<group>"; };
04D8FF722D96759400703C75 /* YHPlanScoreLevelTextView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHPlanScoreLevelTextView.swift; sourceTree = "<group>"; };
04E4CF3D2D5C6D32004D4013 /* YHCountryMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCountryMessageView.swift; sourceTree = "<group>"; }; 04E4CF3D2D5C6D32004D4013 /* YHCountryMessageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHCountryMessageView.swift; sourceTree = "<group>"; };
04E4CF3F2D5C83AE004D4013 /* YHSelectPhoneCountryViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSelectPhoneCountryViewController.swift; sourceTree = "<group>"; }; 04E4CF3F2D5C83AE004D4013 /* YHSelectPhoneCountryViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHSelectPhoneCountryViewController.swift; sourceTree = "<group>"; };
04E507D52D6EE856005F758B /* YHUserLevelAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHUserLevelAlertView.swift; sourceTree = "<group>"; }; 04E507D52D6EE856005F758B /* YHUserLevelAlertView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHUserLevelAlertView.swift; sourceTree = "<group>"; };
...@@ -6746,6 +6748,7 @@ ...@@ -6746,6 +6748,7 @@
04A750D12D93ABCE00974E5F /* YHSurveyTableViewCell.swift */, 04A750D12D93ABCE00974E5F /* YHSurveyTableViewCell.swift */,
04D8FF6E2D954D9B00703C75 /* YHPlanPolicyCarouselView.swift */, 04D8FF6E2D954D9B00703C75 /* YHPlanPolicyCarouselView.swift */,
04D8FF702D9550E700703C75 /* YHPlanPolicyCarouselImageCell.swift */, 04D8FF702D9550E700703C75 /* YHPlanPolicyCarouselImageCell.swift */,
04D8FF722D96759400703C75 /* YHPlanScoreLevelTextView.swift */,
); );
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
...@@ -8084,6 +8087,7 @@ ...@@ -8084,6 +8087,7 @@
045C13032D12CA5F00BD2DC0 /* YHBasicInfoFillViewController.swift in Sources */, 045C13032D12CA5F00BD2DC0 /* YHBasicInfoFillViewController.swift in Sources */,
045C13042D12CA5F00BD2DC0 /* YHImproveSchemeTemplateListCell.swift in Sources */, 045C13042D12CA5F00BD2DC0 /* YHImproveSchemeTemplateListCell.swift in Sources */,
0411CEE92D15123B00644D35 /* YHGCWorkExperienceListViewController.swift in Sources */, 0411CEE92D15123B00644D35 /* YHGCWorkExperienceListViewController.swift in Sources */,
04D8FF732D96759400703C75 /* YHPlanScoreLevelTextView.swift in Sources */,
04AE202E2D13B5EB00891D24 /* YHGCCertificateUploadVC.swift in Sources */, 04AE202E2D13B5EB00891D24 /* YHGCCertificateUploadVC.swift in Sources */,
045C13052D12CA5F00BD2DC0 /* YHActivityModel.swift in Sources */, 045C13052D12CA5F00BD2DC0 /* YHActivityModel.swift in Sources */,
045C13062D12CA5F00BD2DC0 /* YHInterestTopicLayout.swift in Sources */, 045C13062D12CA5F00BD2DC0 /* YHInterestTopicLayout.swift in Sources */,
......
...@@ -46,6 +46,18 @@ class YHPlanViewController: YHBaseViewController { ...@@ -46,6 +46,18 @@ class YHPlanViewController: YHBaseViewController {
return tableView return tableView
}() }()
lazy var whiteBackBtn: UIButton = {
let v = UIButton()
v.setImage(UIImage(named: "back_icon_white"), for: .normal)
return v
}()
lazy var shareBtn: UIButton = {
let v = UIButton()
v.setImage(UIImage(named: "plan_nav_share"), for: .normal)
return v
}()
lazy var headerView: UIView = { lazy var headerView: UIView = {
let v = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: headerViewHeight)) let v = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: headerViewHeight))
v.addSubview(titleImgView) v.addSubview(titleImgView)
...@@ -248,6 +260,8 @@ class YHPlanViewController: YHBaseViewController { ...@@ -248,6 +260,8 @@ class YHPlanViewController: YHBaseViewController {
self.view.addSubview(tableView) self.view.addSubview(tableView)
self.view.addSubview(fixedSegmentView) self.view.addSubview(fixedSegmentView)
self.view.addSubview(bottomView) self.view.addSubview(bottomView)
self.view.addSubview(whiteBackBtn)
self.view.addSubview(shareBtn)
bgImgView.snp.makeConstraints { make in bgImgView.snp.makeConstraints { make in
make.left.right.top.equalToSuperview() make.left.right.top.equalToSuperview()
...@@ -270,6 +284,18 @@ class YHPlanViewController: YHBaseViewController { ...@@ -270,6 +284,18 @@ class YHPlanViewController: YHBaseViewController {
make.left.right.bottom.equalToSuperview() make.left.right.bottom.equalToSuperview()
make.height.equalTo(102 + k_Height_safeAreaInsetsBottom()) make.height.equalTo(102 + k_Height_safeAreaInsetsBottom())
} }
whiteBackBtn.snp.makeConstraints { make in
make.left.equalTo(16)
make.top.equalTo(10+k_Height_statusBar())
make.width.height.equalTo(24)
}
shareBtn.snp.makeConstraints { make in
make.right.equalTo(-16)
make.top.equalTo(10+k_Height_statusBar())
make.width.height.equalTo(24)
}
} }
} }
...@@ -387,6 +413,8 @@ extension YHPlanViewController: UIScrollViewDelegate { ...@@ -387,6 +413,8 @@ extension YHPlanViewController: UIScrollViewDelegate {
} }
fixedSegmentView.alpha = scrollView.contentOffset.y >= topScrollHeight ? 1.0 : 0.0 fixedSegmentView.alpha = scrollView.contentOffset.y >= topScrollHeight ? 1.0 : 0.0
gk_navigationBar.alpha = percent gk_navigationBar.alpha = percent
whiteBackBtn.isHidden = percent >= 1.0
shareBtn.isHidden = percent >= 1.0
if scrollView.contentOffset.y > topScrollHeight { if scrollView.contentOffset.y > topScrollHeight {
if topScrollHeight <= scrollView.contentOffset.y, scrollView.contentOffset.y <= topScrollHeight+10 { if topScrollHeight <= scrollView.contentOffset.y, scrollView.contentOffset.y <= topScrollHeight+10 {
......
//
// YHPlanScoreLevelTextView.swift
// galaxy
//
// Created by Dufet on 2025/3/28.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHPlanScoreLevelTextItemView: UIView {
lazy var titleLabel: UILabel = {
let lable = UILabel()
lable.textColor = .mainTextColor
lable.textAlignment = .left
lable.font = UIFont.PFSC_M(ofSize: 15)
lable.text = ""
return lable
}()
lazy var descLabel: UILabel = {
let lable = UILabel()
lable.textColor = .init(hex: 0x6A7586)
lable.textAlignment = .left
lable.font = UIFont.PFSC_R(ofSize: 13)
lable.numberOfLines = 0
lable.text = ""
return lable
}()
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func createUI() {
// self.backgroundColor = .init(hex: 0x000000, alpha: 0.7)
self.addSubview(titleLabel)
self.addSubview(descLabel)
titleLabel.snp.makeConstraints { make in
make.left.equalTo(20)
make.top.equalTo(24)
make.height.equalTo(20)
}
descLabel.snp.makeConstraints { make in
make.left.equalTo(20)
make.right.equalTo(-20)
make.top.equalTo(titleLabel.snp.bottom).offset(4)
make.bottom.equalTo(0)
}
}
}
class YHPlanScoreLevelTextView: UIView {
lazy var whiteContentView: UIView = {
let v = UIView()
v.backgroundColor = .white
v.layer.cornerRadius = 6.0
v.clipsToBounds = true
return v
}()
lazy var titleLabel: UILabel = {
let lable = UILabel()
lable.textColor = .mainTextColor
lable.textAlignment = .center
lable.font = UIFont.PFSC_M(ofSize: 17)
lable.text = "续签评估等级说明"
return lable
}()
lazy var lineView: UIView = {
let v = UIView()
v.backgroundColor = .init(hex: 0xE9ECF0)
return v
}()
lazy var closeBtn: UIButton = {
let btn = UIButton()
btn.setImage(UIImage(named: "plan_score_level_close"), for: .normal)
btn.addTarget(self, action: #selector(dismiss), for: .touchUpInside)
return btn
}()
lazy var item1View: YHPlanScoreLevelTextItemView = {
let v = YHPlanScoreLevelTextItemView(frame: .zero)
v.titleLabel.text = "强"
v.descLabel.text = "与香港有强联系(长期居住、稳定工作/业务、家庭在港、子女本地就读等,续期资料完整度高) "
return v
}()
lazy var item2View: YHPlanScoreLevelTextItemView = {
let v = YHPlanScoreLevelTextItemView(frame: .zero)
v.titleLabel.text = "中"
v.descLabel.text = "与香港有一定联系(有生活/工作联系但关联不是非常强,能提供个别续期所需的资料)"
return v
}()
lazy var item3View: YHPlanScoreLevelTextItemView = {
let v = YHPlanScoreLevelTextItemView(frame: .zero)
v.titleLabel.text = "弱"
v.descLabel.text = "与香港联系较弱(极少在港居住、无稳定工作或工作关联弱、无法证明贡献等,基本无法提供相应的续期资料) "
return v
}()
static func alertView() -> YHPlanScoreLevelTextView {
let v = YHPlanScoreLevelTextView(frame: UIScreen.main.bounds)
return v
}
@objc func show() {
UIApplication.shared.yhKeyWindow()?.addSubview(self)
}
@objc func dismiss() {
DispatchQueue.main.async {
self.removeFromSuperview()
}
}
override init(frame: CGRect) {
super.init(frame: frame)
createUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func createUI() {
self.backgroundColor = .init(hex: 0x000000, alpha: 0.7)
self.addSubview(whiteContentView)
whiteContentView.addSubview(titleLabel)
whiteContentView.addSubview(lineView)
whiteContentView.addSubview(closeBtn)
whiteContentView.addSubview(item1View)
whiteContentView.addSubview(item2View)
whiteContentView.addSubview(item3View)
whiteContentView.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.bottom.equalTo(6)
make.height.equalTo(450)
}
titleLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(16)
make.height.equalTo(24)
}
lineView.snp.makeConstraints { make in
make.left.equalTo(20)
make.right.equalTo(-20)
make.top.equalTo(titleLabel.snp.bottom).offset(12)
make.height.equalTo(0.5)
}
closeBtn.snp.makeConstraints { make in
make.width.height.equalTo(16)
make.centerY.equalTo(titleLabel)
make.right.equalTo(-20)
}
item1View.snp.makeConstraints { make in
make.top.equalTo(lineView.snp.bottom).offset(0)
make.left.right.equalToSuperview()
}
item2View.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(item1View.snp.bottom).offset(3)
}
item3View.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalTo(item2View.snp.bottom).offset(3)
}
}
}
...@@ -27,6 +27,14 @@ class YHPlanScoreView: UIView { ...@@ -27,6 +27,14 @@ class YHPlanScoreView: UIView {
return lable return lable
}() }()
lazy var questionBtn: UIButton = {
let btn = UIButton()
btn.setImage(UIImage(named: "plan_score_level_question"), for: .normal)
btn.YH_clickEdgeInsets = UIEdgeInsets(top: 30, left: 30, bottom: 30, right: 30)
btn.addTarget(self, action: #selector(didQuestionBtnClicked), for: .touchUpInside)
return btn
}()
lazy var statusLabel: UILabel = { lazy var statusLabel: UILabel = {
let lable = UILabel() let lable = UILabel()
lable.textColor = UIColor.mainTextColor lable.textColor = UIColor.mainTextColor
...@@ -66,10 +74,17 @@ class YHPlanScoreView: UIView { ...@@ -66,10 +74,17 @@ class YHPlanScoreView: UIView {
fatalError("init(coder:) has not been implemented") fatalError("init(coder:) has not been implemented")
} }
@objc func didQuestionBtnClicked() {
YHPlanScoreLevelTextView.alertView().show()
}
func createUI() { func createUI() {
backgroundColor = .clear backgroundColor = .clear
self.addSubview(whiteContentView) self.addSubview(whiteContentView)
whiteContentView.addSubview(titleLabel) whiteContentView.addSubview(titleLabel)
whiteContentView.addSubview(questionBtn)
whiteContentView.addSubview(statusLineView) whiteContentView.addSubview(statusLineView)
whiteContentView.addSubview(statusLabel) whiteContentView.addSubview(statusLabel)
whiteContentView.addSubview(chartView) whiteContentView.addSubview(chartView)
...@@ -85,7 +100,13 @@ class YHPlanScoreView: UIView { ...@@ -85,7 +100,13 @@ class YHPlanScoreView: UIView {
titleLabel.snp.makeConstraints { make in titleLabel.snp.makeConstraints { make in
make.height.equalTo(18) make.height.equalTo(18)
make.top.equalTo(20) make.top.equalTo(20)
make.centerX.equalToSuperview() make.centerX.equalToSuperview().offset(-8)
}
questionBtn.snp.makeConstraints { make in
make.width.height.equalTo(14)
make.centerY.equalTo(titleLabel)
make.left.equalTo(titleLabel.snp.right).offset(2)
} }
statusLineView.snp.makeConstraints { make in statusLineView.snp.makeConstraints { make in
......
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "24pt导航栏@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "24pt导航栏@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "Frame 2033196960@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "Frame 2033196960@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "16pt@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "16pt@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment