Commit d687893b authored by Alex朱枝文's avatar Alex朱枝文

调查问卷

parent c4f72108
This diff is collapsed.
//
// YHCustomerInformationQuestionnaireVC.swift
// galaxy
//
// Created by alexzzw on 2025/3/25.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import AttributedString
import UIKit
class YHCustomerInformationQuestionnaireVC: YHBaseViewController {
enum CustomerType: Int {
case old
case new
func topImage() -> String {
switch self {
case .old:
return "plan_question_top_old"
case .new:
return "plan_question_top_new"
}
}
}
private lazy var tableView: UITableView = {
let view = UITableView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight), style: .grouped)
view.estimatedSectionHeaderHeight = 0.01
view.estimatedSectionFooterHeight = 16
view.contentInsetAdjustmentBehavior = .never
view.backgroundColor = .clear
view.separatorStyle = .none
view.dataSource = self
view.delegate = self
view.showsVerticalScrollIndicator = false
view.register(YHSurveyTableViewCell.self, forCellReuseIdentifier: YHSurveyTableViewCell.cellReuseIdentifier)
return view
}()
private var imageHeight: CGFloat {
return KScreenWidth
}
private lazy var topImageView: UIImageView = {
let view = UIImageView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: imageHeight))
view.image = UIImage(named: "plan_question_top_old")
return view
}()
private lazy var submitButton: UIButton = {
let button = UIButton(type: .custom)
button.titleLabel?.font = UIFont.PFSC_M(ofSize: 16)
let buttonName = "提交"
button.setTitle(buttonName, for: .normal)
button.setTitle(buttonName, for: .highlighted)
button.setTitleColor(UIColor(hex: 0xFFFFFF), for: .normal)
button.setTitleColor(UIColor(hex: 0xFFFFFF), for: .highlighted)
button.addTarget(self, action: #selector(submitButtonClick), for: .touchUpInside)
button.layer.cornerRadius = kCornerRadius3
button.clipsToBounds = true
button.backgroundColor = UIColor(hexString: "#121A26")
return button
}()
private lazy var bottomView: UIView = {
let view = UIView()
view.backgroundColor = .white
return view
}()
/*
private lazy var privacyButton: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "plan_privacy_unchecked"), for: .normal)
button.setImage(UIImage(named: "plan_privacy_checked"), for: .selected)
button.addTarget(self, action: #selector(privacyButtonClicked), for: .touchUpInside)
return button
}()
private lazy var privacyLabel: UILabel = {
let label = UILabel()
let normal: ASAttributedString = .init("同意用户隐私信息收集协议《 ", .font(UIFont.PFSC_R(ofSize: 13)), .foreground(UIColor.mainTextColor.withAlphaComponent(0.5))).add(attributes: .action { [weak self] in
self?.privacyButtonClicked()
})
let attributed: ASAttributedString = .init("隐私协议", .font(UIFont.PFSC_M(ofSize: 13)), .foreground(UIColor.mainTextColor), .action { [weak self] in
self?.gotoPrivacyPage()
})
let end: ASAttributedString = .init(" 》", .font(UIFont.PFSC_R(ofSize: 13)), .foreground(UIColor.mainTextColor.withAlphaComponent(0.5)))
let content = normal + attributed + end
label.attributed.text = content
return label
}()
*/
private var sections: [YHSurveyQuestionType] {
return YHSurveyQuestionType.allCases
}
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
private func setupUI() {
gk_navBarAlpha = 0
gk_navBackgroundColor = .clear
// gk_navLeftBarButtonItem?.tintColor = .white
gk_backImage = UIImage(named: "back_icon_white")
updateRightBarButtonItem(true)
view.backgroundColor = UIColor.contentBkgColor
view.addSubview(bottomView)
bottomView.addSubview(submitButton)
// bottomView.addSubview(privacyButton)
// bottomView.addSubview(privacyLabel)
view.addSubview(tableView)
view.addSubview(topImageView)
view.bringSubviewToFront(tableView)
bottomView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.top.equalTo(view.safeAreaLayoutGuide.snp.bottom).offset(-64)
}
/*
privacyButton.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.width.height.equalTo(13)
make.centerY.equalTo(privacyLabel)
}
privacyLabel.snp.makeConstraints { make in
make.left.equalTo(privacyButton.snp.right).offset(6)
make.top.equalToSuperview().offset(12)
make.right.lessThanOrEqualToSuperview().offset(-16)
}
*/
submitButton.snp.makeConstraints { make in
make.top.equalToSuperview().offset(8)
make.left.equalToSuperview().offset(16)
make.right.equalToSuperview().offset(-16)
make.height.equalTo(48)
}
tableView.snp.makeConstraints { make in
make.left.equalToSuperview()
make.right.equalToSuperview()
make.top.equalToSuperview()
make.bottom.equalTo(bottomView.snp.top).offset(-24)
}
tableView.contentInset = UIEdgeInsets(top: imageHeight - 110, left: 0, bottom: 0, right: 0)
tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: KScreenWidth, height: 0.01))
}
@objc private func share() {
//
}
@objc private func submitButtonClick() {
}
/*
@objc private func privacyButtonClicked() {
privacyButton.isSelected.toggle()
}
private func gotoPrivacyPage() {
let vc = YHWebViewViewController()
vc.url = YHBaseUrlManager.shared.curPrivacyAgreementUrl()
vc.navTitle = "银河港生活隐私协议"
navigationController?.pushViewController(vc)
}
*/
private func updateRightBarButtonItem(_ isWhite: Bool) {
let rightButtonItem = UIBarButtonItem(image: UIImage(named: isWhite ? "video_share" : "share_item")?.withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(share))
gk_navRightBarButtonItem = rightButtonItem
gk_navItemRightSpace = 16
}
}
extension YHCustomerInformationQuestionnaireVC: UITableViewDelegate, UITableViewDataSource {
func numberOfSections(in tableView: UITableView) -> Int {
return sections.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
guard sections.count > section else {
return 0
}
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard sections.count > indexPath.section else {
return UITableViewCell()
}
let model = sections[indexPath.section]
if let cell = tableView.dequeueReusableCell(withIdentifier: YHSurveyTableViewCell.cellReuseIdentifier) as? YHSurveyTableViewCell {
cell.configure(with: model.rawValue, options: model.selections())
return cell
}
return UITableViewCell()
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return UITableView.automaticDimension
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UIView()
return view
}
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let view = UIView()
return view
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
if section == sections.count - 1 {
return 0.01
}
return 16
}
func scrollViewDidScroll(_ scrollView: UIScrollView) {
let offsetY = scrollView.contentOffset.y + scrollView.contentInset.top
topImageView.frame.origin.y = -offsetY
if offsetY > 0 {
var alpha = offsetY / k_Height_NavigationtBarAndStatuBar
if alpha > 1.0 {
alpha = 1.0
}
gk_navBarAlpha = alpha
gk_navBackgroundColor = .white
gk_navTitle = "香港身份方案评估"
gk_backImage = UIImage(named: "nav_black_24")
gk_navRightBarButtonItem?.image = UIImage(named: "share_item")
updateRightBarButtonItem(false)
} else {
gk_navBarAlpha = 0.0
gk_navBackgroundColor = .clear
gk_navTitle = nil
updateRightBarButtonItem(true)
gk_backImage = UIImage(named: "back_icon_white")
}
}
}
//
// YHSurveyMatchResultViewController.swift
// galaxy
//
// Created by alexzzw on 2025/3/27.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import Lottie
import UIKit
class YHSurveyMatchResultViewController: YHBaseViewController {
enum MatchResult {
case failure
case success
func iconTitle() -> String {
switch self {
case .failure:
return "plan_survey_match_failure"
case .success:
return "plan_survey_match_success"
}
}
func title() -> String {
switch self {
case .failure:
return "匹配失败"
case .success:
return "匹配完成"
}
}
func content() -> String {
switch self {
case .failure:
return "出了点问题,重试一下吧"
case .success:
return "请您查阅【香港身份续签至永居方案】,\n如需进一步咨询,请联系专属顾问和生活管家"
}
}
func buttonTitle() -> String {
switch self {
case .failure:
return "重新匹配"
case .success:
return "香港身份续签至永居方案"
}
}
}
private lazy var topImageView: UIImageView = {
let view = UIImageView()
return view
}()
private lazy var infoTitleLabel: UILabel = {
let label = UILabel()
label.textColor = .mainTextColor
label.font = .PFSC_B(ofSize: 26)
label.textAlignment = .center
return label
}()
private lazy var infoContentLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor(hex: 0x6A7586)
label.font = .PFSC_R(ofSize: 15)
label.textAlignment = .center
label.numberOfLines = 0
return label
}()
private lazy var matchButton: UIButton = {
let button = UIButton(type: .custom)
button.addTarget(self, action: #selector(matchButtonClicked), for: .touchUpInside)
button.backgroundColor = .mainTextColor
button.setTitleColor(.white, for: .normal)
button.titleLabel?.font = .PFSC_R(ofSize: 14)
button.layer.cornerRadius = 3
button.clipsToBounds = true
return button
}()
private let pageType: MatchResult
init(_ pageType: MatchResult) {
self.pageType = pageType
super.init(nibName: nil, bundle: nil)
}
@MainActor required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
private func setupUI() {
gk_navTitle = "香港身份方案评估"
gk_navBarAlpha = 1.0
gk_navBackgroundColor = .white
view.backgroundColor = UIColor.white
view.addSubview(topImageView)
view.addSubview(infoTitleLabel)
view.addSubview(infoContentLabel)
view.addSubview(matchButton)
topImageView.snp.makeConstraints { make in
make.width.equalTo(200)
make.height.equalTo(200)
make.top.equalToSuperview().offset(90 + k_Height_NavigationtBarAndStatuBar)
make.centerX.equalToSuperview()
}
infoTitleLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(topImageView.snp.bottom).offset(8)
}
infoContentLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(infoTitleLabel.snp.bottom).offset(8)
make.left.greaterThanOrEqualToSuperview().offset(16)
make.right.lessThanOrEqualToSuperview().offset(-16)
}
matchButton.snp.makeConstraints { make in
make.left.equalToSuperview().offset(38)
make.right.equalToSuperview().offset(-38)
make.bottom.equalTo(view.layoutMarginsGuide.snp.bottom).offset(-68)
make.height.equalTo(48)
}
topImageView.image = UIImage(named: pageType.iconTitle())
infoTitleLabel.text = pageType.title()
infoContentLabel.text = pageType.content()
matchButton.setTitle(pageType.buttonTitle(), for: .normal)
if pageType == .success {
playMatchSuccessAnimation()
}
}
@objc private func matchButtonClicked() {
//
}
/// 播放匹配成功
private func playMatchSuccessAnimation() {
let aniView = LottieAnimationView(name: "survey_match_success")
aniView.isUserInteractionEnabled = false
aniView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenWidth)
aniView.contentMode = .scaleAspectFit
aniView.loopMode = .playOnce
view.addSubview(aniView)
aniView.play(completion: { _ in
aniView.removeFromSuperview()
})
}
}
//
// YHSurveyMatchingViewController.swift
// galaxy
//
// Created by alexzzw on 2025/3/27.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import Lottie
import UIKit
class YHSurveyMatchingViewController: YHBaseViewController {
private lazy var lottieView: LottieAnimationView = {
let aniView = LottieAnimationView(name: "survey_file_scan")
aniView.isUserInteractionEnabled = false
aniView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenWidth)
aniView.contentMode = .scaleAspectFit
aniView.loopMode = .loop
return aniView
}()
private lazy var infoTitleLabel: UILabel = {
let label = UILabel()
label.text = "智能匹配中"
label.textColor = .mainTextColor
label.font = .PFSC_B(ofSize: 26)
label.textAlignment = .center
return label
}()
private lazy var infoContentLabel: UILabel = {
let label = UILabel()
label.text = "正在为您制定香港身份续签至永居方案"
label.textColor = UIColor(hex: 0x6A7586)
label.font = .PFSC_R(ofSize: 15)
label.textAlignment = .center
label.numberOfLines = 0
return label
}()
private lazy var progressView: UIProgressView = {
let view = UIProgressView()
view.progressTintColor = .mainTextColor
view.trackTintColor = UIColor(hexString: "#F5F6F8")
view.progress = 0.6
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
startAnimation()
}
private func setupUI() {
gk_navTitle = "香港身份方案评估"
gk_navBarAlpha = 1.0
gk_navBackgroundColor = .white
view.backgroundColor = UIColor.white
view.addSubview(lottieView)
view.addSubview(infoTitleLabel)
view.addSubview(infoContentLabel)
view.addSubview(progressView)
lottieView.snp.makeConstraints { make in
make.width.equalTo(248)
make.height.equalTo(248)
make.top.equalToSuperview().offset(32 + k_Height_NavigationtBarAndStatuBar)
make.centerX.equalToSuperview()
}
infoTitleLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(lottieView.snp.bottom).offset(18)
}
infoContentLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(infoTitleLabel.snp.bottom).offset(8)
make.left.greaterThanOrEqualToSuperview().offset(16)
make.right.lessThanOrEqualToSuperview().offset(-16)
}
progressView.snp.makeConstraints { make in
make.width.equalTo(220)
make.height.equalTo(4)
make.centerX.equalToSuperview()
make.bottom.equalTo(view.layoutMarginsGuide.snp.bottom).offset(-90)
}
}
private func startAnimation() {
lottieView.play(completion: { _ in
//
})
}
private func stopAnimation() {
lottieView.stop()
}
}
//
// YHSurveySubmitDoneViewController.swift
// galaxy
//
// Created by alexzzw on 2025/3/26.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHSurveySubmitDoneViewController: YHBaseViewController {
private lazy var topImageView: UIImageView = {
let view = UIImageView()
view.image = UIImage(named: "plan_question_submitted")
return view
}()
private lazy var infoTitleLabel: UILabel = {
let label = UILabel()
label.text = "问卷提交成功"
label.textColor = .mainTextColor
label.font = .PFSC_B(ofSize: 17)
label.textAlignment = .center
return label
}()
private lazy var infoContentLabel: UILabel = {
let label = UILabel()
label.text = "专属顾问将在24小时内与您联系,\n为您提供详细方案"
label.textColor = UIColor(hex: 0x6A7586)
label.font = .PFSC_R(ofSize: 14)
label.textAlignment = .center
label.numberOfLines = 0
return label
}()
private lazy var backHomeButton: UIButton = {
let button = UIButton(type: .custom)
button.setTitle("返回首页", for: .normal)
button.addTarget(self, action: #selector(backHomeClicked), for: .touchUpInside)
button.backgroundColor = .mainTextColor
button.setTitleColor(.white, for: .normal)
button.titleLabel?.font = .PFSC_R(ofSize: 14)
button.layer.cornerRadius = 3
button.clipsToBounds = true
return button
}()
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
private func setupUI() {
gk_navTitle = "香港身份方案评估"
gk_navBarAlpha = 1.0
gk_navBackgroundColor = .white
view.backgroundColor = UIColor.white
view.addSubview(topImageView)
view.addSubview(infoTitleLabel)
view.addSubview(infoContentLabel)
view.addSubview(backHomeButton)
topImageView.snp.makeConstraints { make in
make.width.equalTo(127)
make.height.equalTo(92)
make.top.equalToSuperview().offset(129 + k_Height_NavigationtBarAndStatuBar)
make.centerX.equalToSuperview()
}
infoTitleLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(topImageView.snp.bottom).offset(8)
}
infoContentLabel.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(infoTitleLabel.snp.bottom).offset(8)
make.left.greaterThanOrEqualToSuperview().offset(16)
make.right.lessThanOrEqualToSuperview().offset(-16)
}
backHomeButton.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.top.equalTo(infoContentLabel.snp.bottom).offset(24)
make.width.equalTo(100)
make.height.equalTo(40)
}
}
@objc private func backHomeClicked() {
UIViewController.current?.navigationController?.popToRootViewController(animated: false)
goTabBarBy(tabType: .home)
}
}
//
// YHSurveyQuestionType.swift
// galaxy
//
// Created by alexzzw on 2025/3/26.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
enum YHSurveyQuestionType: String, CaseIterable {
case hasHKId = "是否香港身份"
case hasPR = "是否有永居服务"
case isEmployed = "是否受雇香港"
case hasHKCompany = "是否有香港公司"
case isHKCompanyOpen = "香港公司是否运营"
case isMainlandCompanyToHK = "是否有内地公司业务转到香港"
case isHKOffice = "是否香港办公室"
case hkResidence = "在港居住情况"
case hasChildrenEduPlan = "是否子女在港读书计划"
case hasHKInsurance = "是否香港保险"
case hasPRLicense = "是否香港驾照"
case isHKHolder = "是否香港个户"
case hkStayRate = "在港逗留频率"
func selections() -> [String] {
switch self {
case .hasHKId:
return ["是", "否"]
case .hasPR:
return ["是", "否"]
case .isEmployed:
return ["是", "否"]
case .hasHKCompany:
return ["是", "否"]
case .isHKCompanyOpen:
return ["是", "否"]
case .isMainlandCompanyToHK:
return ["是", "否"]
case .isHKOffice:
return ["是", "否"]
case .hkResidence:
return ["枚举值已购房", "已租房", "考虑购房", "考虑租房", "暂不考虑"]
case .hasChildrenEduPlan:
return ["是", "否"]
case .hasHKInsurance:
return ["是", "否"]
case .hasPRLicense:
return ["是", "否"]
case .isHKHolder:
return ["是", "否"]
case .hkStayRate:
return ["枚举值长期在港", "每周赴港至少一次", "每月去一次", "每季度去一次", "半年去一次", "超过半年去一次"]
}
}
}
//
// YHSurveyTableViewCell.swift
// galaxy
//
// Created by alexzzw on 2025/3/26.
// Copyright © 2025 https://www.galaxy-immi.com. All rights reserved.
//
import UIKit
class YHSurveyTableViewCell: YHResignDocumentCell {
static let cellReuseIdentifier = "YHSurveyTableViewCell"
// MARK: - Question Type
enum QuestionType {
case singleChoice // 单选 (圆形按钮)
case multipleChoice // 多选 (方框按钮)
}
// MARK: - UI Elements
private lazy var questionLabel: UILabel = {
let label = UILabel()
label.font = .PFSC_M(ofSize: 15)
label.numberOfLines = 0
label.textColor = .mainTextColor
return label
}()
private lazy var optionsStackView: UIStackView = {
let stack = UIStackView()
stack.axis = .vertical
stack.spacing = 16
stack.distribution = .fillProportionally
return stack
}()
// MARK: - Properties
var optionSelected: ((Int) -> Void)?
private var questionType: QuestionType = .singleChoice
// MARK: - Lifecycle
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: - Setup
private func setupUI() {
updateCellCorner(.single)
subContainerView.addSubview(questionLabel)
subContainerView.addSubview(optionsStackView)
questionLabel.snp.makeConstraints { make in
make.top.equalToSuperview().offset(24)
make.left.equalToSuperview().offset(18)
make.right.equalToSuperview().offset(-18)
}
optionsStackView.snp.makeConstraints { make in
make.top.equalTo(questionLabel.snp.bottom).offset(16)
make.left.equalToSuperview().offset(28)
make.right.equalToSuperview().offset(-18)
make.bottom.equalToSuperview().offset(-24).priority(.high)
}
}
// MARK: - Configuration
func configure(with question: String, options: [String], selectedIndex: Int? = nil, type: QuestionType = .singleChoice) {
questionLabel.text = question
questionType = type
// Clear previous options
optionsStackView.arrangedSubviews.forEach { $0.removeFromSuperview() }
// Add new options
for (index, option) in options.enumerated() {
let optionView = createOptionView(text: option, isSelected: index == selectedIndex, index: index)
optionsStackView.addArrangedSubview(optionView)
}
}
private func createOptionView(text: String, isSelected: Bool, index: Int) -> UIView {
let container = UIControl()
container.tag = index
container.addTarget(self, action: #selector(optionButtonTapped(_:)), for: .touchUpInside)
let label = UILabel()
label.text = text
label.textColor = .mainTextColor
label.font = .PFSC_R(ofSize: 14)
let icon = UIImageView()
icon.image = isSelected ? UIImage(named: "plan_question_checked") : UIImage(named: "plan_question_unchecked")
// icon.image = isSelected ? UIImage(systemName: questionType == .singleChoice ? "largecircle.fill.circle" : "checkmark.square.fill") :
// UIImage(systemName: questionType == .singleChoice ? "circle" : "square")
// icon.tintColor = isSelected ? .systemBlue : .lightGray
container.addSubview(icon)
container.addSubview(label)
icon.snp.makeConstraints { make in
make.left.centerY.equalToSuperview()
make.width.height.equalTo(14)
}
label.snp.makeConstraints { make in
make.left.equalTo(icon.snp.right).offset(8)
make.right.top.bottom.equalToSuperview()
}
return container
}
// MARK: - Actions
@objc private func optionButtonTapped(_ sender: UIControl) {
optionSelected?(sender.tag)
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "nav_black_24@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "nav_black_24@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "plan_privacy_checked@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "plan_privacy_checked@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "plan_privacy_unchecked@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "plan_privacy_unchecked@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "plan_question_checked@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "plan_question_checked@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "plan_question_submitted@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "plan_question_submitted@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "plan_question_top_new@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "plan_question_top_new@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "plan_question_top_old@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "plan_question_top_old@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "plan_question_unchecked@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "plan_question_unchecked@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "plan_survey_match_failure@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "plan_survey_match_failure@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "匹配完成@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "匹配完成@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
This diff is collapsed.
This diff is collapsed.
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