Commit 84ef1fb563b612a94421cef259b2ab48d5ccac56

Authored by “张旭”
1 parent 4b46ed20

1.登录页苹果登录 , 微信登录 2.我的-绑定管理 微信,苹果

Showing 23 changed files with 717 additions and 3 deletions
metaCode.xcodeproj/project.pbxproj
@@ -128,6 +128,9 @@ @@ -128,6 +128,9 @@
128 19BB202B2AF382150094D962 /* CNLiveAdaptTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */; }; 128 19BB202B2AF382150094D962 /* CNLiveAdaptTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */; };
129 19C0F7672BD8DC4D0097CC8F /* CNThreeLoginModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */; }; 129 19C0F7672BD8DC4D0097CC8F /* CNThreeLoginModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */; };
130 19C0F7692BD9F9F70097CC8F /* CNThreeLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F7682BD9F9F70097CC8F /* CNThreeLoginViewController.swift */; }; 130 19C0F7692BD9F9F70097CC8F /* CNThreeLoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F7682BD9F9F70097CC8F /* CNThreeLoginViewController.swift */; };
  131 + 19C0F76B2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F76A2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift */; };
  132 + 19C0F76D2BDB48750097CC8F /* CNBindingManageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F76C2BDB48750097CC8F /* CNBindingManageCell.swift */; };
  133 + 19C0F76F2BDB4CE10097CC8F /* CNBindingManageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F76E2BDB4CE10097CC8F /* CNBindingManageModel.swift */; };
131 19CC4D472ADD006600308E2A /* CNDownSlideSingleCourseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */; }; 134 19CC4D472ADD006600308E2A /* CNDownSlideSingleCourseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */; };
132 19CC4D492ADD06C500308E2A /* UITableView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */; }; 135 19CC4D492ADD06C500308E2A /* UITableView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */; };
133 19CC4D4B2ADD086F00308E2A /* CNUpSlideDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */; }; 136 19CC4D4B2ADD086F00308E2A /* CNUpSlideDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */; };
@@ -405,6 +408,9 @@ @@ -405,6 +408,9 @@
405 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAdaptTool.swift; sourceTree = "<group>"; }; 408 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAdaptTool.swift; sourceTree = "<group>"; };
406 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNThreeLoginModel.swift; sourceTree = "<group>"; }; 409 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNThreeLoginModel.swift; sourceTree = "<group>"; };
407 19C0F7682BD9F9F70097CC8F /* CNThreeLoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNThreeLoginViewController.swift; sourceTree = "<group>"; }; 410 19C0F7682BD9F9F70097CC8F /* CNThreeLoginViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNThreeLoginViewController.swift; sourceTree = "<group>"; };
  411 + 19C0F76A2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineBindingManagerController.swift; sourceTree = "<group>"; };
  412 + 19C0F76C2BDB48750097CC8F /* CNBindingManageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNBindingManageCell.swift; sourceTree = "<group>"; };
  413 + 19C0F76E2BDB4CE10097CC8F /* CNBindingManageModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNBindingManageModel.swift; sourceTree = "<group>"; };
408 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNDownSlideSingleCourseCell.swift; sourceTree = "<group>"; }; 414 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNDownSlideSingleCourseCell.swift; sourceTree = "<group>"; };
409 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableView+Extension.swift"; sourceTree = "<group>"; }; 415 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableView+Extension.swift"; sourceTree = "<group>"; };
410 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNUpSlideDetailViewController.swift; sourceTree = "<group>"; }; 416 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNUpSlideDetailViewController.swift; sourceTree = "<group>"; };
@@ -1134,6 +1140,7 @@ @@ -1134,6 +1140,7 @@
1134 79803E262AD68D3100F05F68 /* CNLiveMineShopViewController.swift */, 1140 79803E262AD68D3100F05F68 /* CNLiveMineShopViewController.swift */,
1135 79E672022AFDFA9C00F2F768 /* CNLiveMineSignOutViewController.swift */, 1141 79E672022AFDFA9C00F2F768 /* CNLiveMineSignOutViewController.swift */,
1136 79DC67632B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift */, 1142 79DC67632B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift */,
  1143 + 19C0F76A2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift */,
1137 ); 1144 );
1138 path = Controller; 1145 path = Controller;
1139 sourceTree = "<group>"; 1146 sourceTree = "<group>";
@@ -1325,6 +1332,7 @@ @@ -1325,6 +1332,7 @@
1325 798A44F12A30674200815935 /* CNLiveMineSubBodyListView.swift */, 1332 798A44F12A30674200815935 /* CNLiveMineSubBodyListView.swift */,
1326 79F4B11B2A33036E00993C03 /* CNLiveMineInfoAlertView.swift */, 1333 79F4B11B2A33036E00993C03 /* CNLiveMineInfoAlertView.swift */,
1327 79803E282AD6991200F05F68 /* CNLiveMineInputMessageView.swift */, 1334 79803E282AD6991200F05F68 /* CNLiveMineInputMessageView.swift */,
  1335 + 19C0F76C2BDB48750097CC8F /* CNBindingManageCell.swift */,
1328 ); 1336 );
1329 path = View; 1337 path = View;
1330 sourceTree = "<group>"; 1338 sourceTree = "<group>";
@@ -1334,6 +1342,7 @@ @@ -1334,6 +1342,7 @@
1334 children = ( 1342 children = (
1335 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */, 1343 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */,
1336 790B1FB32A4153E90074CF00 /* CNLiveMineBaseModel.swift */, 1344 790B1FB32A4153E90074CF00 /* CNLiveMineBaseModel.swift */,
  1345 + 19C0F76E2BDB4CE10097CC8F /* CNBindingManageModel.swift */,
1337 ); 1346 );
1338 path = ViewModel; 1347 path = ViewModel;
1339 sourceTree = "<group>"; 1348 sourceTree = "<group>";
@@ -1774,6 +1783,7 @@ @@ -1774,6 +1783,7 @@
1774 191733502B2C3E1F007BCC04 /* CNLivePickerView.swift in Sources */, 1783 191733502B2C3E1F007BCC04 /* CNLivePickerView.swift in Sources */,
1775 191733622B3538DC007BCC04 /* CNLiveShopCouponsManagerViewController.swift in Sources */, 1784 191733622B3538DC007BCC04 /* CNLiveShopCouponsManagerViewController.swift in Sources */,
1776 191732902B0348F6007BCC04 /* CNLiveSwitchView.swift in Sources */, 1785 191732902B0348F6007BCC04 /* CNLiveSwitchView.swift in Sources */,
  1786 + 19C0F76B2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift in Sources */,
1777 792B53282AFCD7640009AB49 /* CNLiveShopOrderExpressDetailViewController.swift in Sources */, 1787 792B53282AFCD7640009AB49 /* CNLiveShopOrderExpressDetailViewController.swift in Sources */,
1778 79396EF12A31C21B0053E1AF /* CNLiveInfoShowViewController.swift in Sources */, 1788 79396EF12A31C21B0053E1AF /* CNLiveInfoShowViewController.swift in Sources */,
1779 191733422B284D5E007BCC04 /* CNLiveShopCouponCreateBottomView.swift in Sources */, 1789 191733422B284D5E007BCC04 /* CNLiveShopCouponCreateBottomView.swift in Sources */,
@@ -1859,6 +1869,7 @@ @@ -1859,6 +1869,7 @@
1859 191733662B39237D007BCC04 /* CNLiveShopGoodsManageListTableViewCell.swift in Sources */, 1869 191733662B39237D007BCC04 /* CNLiveShopGoodsManageListTableViewCell.swift in Sources */,
1860 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */, 1870 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */,
1861 1917334E2B2C1A08007BCC04 /* CNLiveSelectCouponTapView.swift in Sources */, 1871 1917334E2B2C1A08007BCC04 /* CNLiveSelectCouponTapView.swift in Sources */,
  1872 + 19C0F76F2BDB4CE10097CC8F /* CNBindingManageModel.swift in Sources */,
1862 191733272B148BB1007BCC04 /* CNLivePlayerFastForwardPreviewView.swift in Sources */, 1873 191733272B148BB1007BCC04 /* CNLivePlayerFastForwardPreviewView.swift in Sources */,
1863 7CD675522A29C04B008354C1 /* CNLiveConfigstant.swift in Sources */, 1874 7CD675522A29C04B008354C1 /* CNLiveConfigstant.swift in Sources */,
1864 79282A402A2F055100B5F8CF /* CNLiveConfigUserInfo.swift in Sources */, 1875 79282A402A2F055100B5F8CF /* CNLiveConfigUserInfo.swift in Sources */,
@@ -1885,6 +1896,7 @@ @@ -1885,6 +1896,7 @@
1885 798A44FD2A309EBA00815935 /* CNLiveTypeFeedBackViewController.swift in Sources */, 1896 798A44FD2A309EBA00815935 /* CNLiveTypeFeedBackViewController.swift in Sources */,
1886 79656E382AAEBA8E00119A61 /* CNLiveMineInputViewController.swift in Sources */, 1897 79656E382AAEBA8E00119A61 /* CNLiveMineInputViewController.swift in Sources */,
1887 19CC4D522ADD129800308E2A /* CNUpSlideAnimationTransition.swift in Sources */, 1898 19CC4D522ADD129800308E2A /* CNUpSlideAnimationTransition.swift in Sources */,
  1899 + 19C0F76D2BDB48750097CC8F /* CNBindingManageCell.swift in Sources */,
1888 1917331D2B10A15A007BCC04 /* CNLivePlayerFailureView.swift in Sources */, 1900 1917331D2B10A15A007BCC04 /* CNLivePlayerFailureView.swift in Sources */,
1889 7CD6754F2A2840B9008354C1 /* CNMetaCodeHomePageController.swift in Sources */, 1901 7CD6754F2A2840B9008354C1 /* CNMetaCodeHomePageController.swift in Sources */,
1890 79D094DC2B0765DD008CB1F3 /* CNLiveShopBodyCouponGoodsListView.swift in Sources */, 1902 79D094DC2B0765DD008CB1F3 /* CNLiveShopBodyCouponGoodsListView.swift in Sources */,
metaCode/Classes/Main/MinePage/Controller/CNLiveMineBindingManagerController.swift 0 → 100644
  1 +//
  2 +// CNLiveMineBindingManagerController.swift
  3 +// metaCode
  4 +//
  5 +// Created by zx on 2024/4/26.
  6 +//
  7 +
  8 +import Foundation
  9 +import SnapKit
  10 +
  11 +class CNLiveMineBindingManagerController:CNLiveBaseViewController, UITableViewDataSource, UITableViewDelegate{
  12 +
  13 + let kCNBindingManageCellIdentifier = "kCNBindingManageCellIdentifier"
  14 +
  15 + lazy var tableView : UITableView = {
  16 + let tableView = UITableView(frame: .zero, style: .plain)
  17 + tableView.dataSource = self
  18 + tableView.delegate = self
  19 + tableView.separatorStyle = .none
  20 + tableView.register(CNBindingManageCell.self, forCellReuseIdentifier: kCNBindingManageCellIdentifier)
  21 + tableView.backgroundColor = HexColor("#f4f4f4")
  22 + return tableView
  23 + }()
  24 +
  25 + ///数据源
  26 + lazy var unBindingData: NSMutableArray = {
  27 + var dataArray = NSMutableArray()
  28 + return dataArray
  29 + }()
  30 +
  31 + override func viewWillAppear(_ animated: Bool) {
  32 + super.viewWillAppear(animated)
  33 +
  34 + }
  35 +
  36 + override func viewDidLoad() {
  37 + super.viewDidLoad()
  38 + self.view.backgroundColor = HexColor(kCNDownSlideBackgroundColorHex)
  39 + navigationBarHidden = false
  40 + titleName = "绑定管理"
  41 +
  42 + self.view.addSubview(self.tableView)
  43 + self.tableView.snp.makeConstraints { make in
  44 + make.bottom.left.right.equalToSuperview()
  45 + make.top.equalTo(KNavigationHeight)
  46 + }
  47 + self.loadData()
  48 + }
  49 +
  50 + deinit {
  51 +
  52 + }
  53 +
  54 + func loadData(){
  55 + CNLiveMineViewModel.requestModels {[weak self] unBindingArr in
  56 + let unbingArr = unBindingArr as! NSMutableArray
  57 + self!.unBindingData = NSMutableArray(array: unbingArr)
  58 + self!.tableView.reloadData()
  59 + }
  60 + }
  61 +
  62 + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
  63 + return self.unBindingData.count;
  64 + }
  65 +
  66 + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
  67 + guard let cell = tableView.dequeueReusableCell(withIdentifier: kCNBindingManageCellIdentifier) as? CNBindingManageCell
  68 + else {
  69 + return CNBindingManageCell()
  70 + }
  71 + let bindModel = self.unBindingData[indexPath.row] as! CNBindingManageModel
  72 + cell.bindModel = bindModel
  73 + cell.finishBlock = { status in
  74 + if status == .success{
  75 + self.loadData()
  76 + }else{
  77 +
  78 + }
  79 + }
  80 + return cell
  81 + }
  82 +
  83 + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
  84 + 85
  85 + }
  86 + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
  87 + if indexPath.row == 0{
  88 + //跳转绑定手机号页面
  89 +
  90 + }
  91 + }
  92 +}
metaCode/Classes/Main/MinePage/Controller/CNLiveTypeFeedBackViewController.swift
@@ -43,9 +43,10 @@ class CNLiveTypeFeedBackViewController : CNLiveBaseViewController, UITableViewDe @@ -43,9 +43,10 @@ class CNLiveTypeFeedBackViewController : CNLiveBaseViewController, UITableViewDe
43 dataArray.add(["icon":"mine_list_sub_set_sugges","name":"产品建议"]) 43 dataArray.add(["icon":"mine_list_sub_set_sugges","name":"产品建议"])
44 } 44 }
45 if _show_type == .setting { 45 if _show_type == .setting {
  46 + dataArray.add(["icon":"mine_set_bangding","name":"绑定管理"])
46 dataArray.add(["icon":"mine_list_sub_set_privacy","name":"隐私"]) 47 dataArray.add(["icon":"mine_list_sub_set_privacy","name":"隐私"])
47 dataArray.add(["icon":"mine_list_sub_set_about","name":"关于我们"]) 48 dataArray.add(["icon":"mine_list_sub_set_about","name":"关于我们"])
48 - dataArray.add(["icon":"mine_list_sub_set_about","name":"注销账号"]) 49 + dataArray.add(["icon":"mine_set_zhuxiao","name":"注销账号"])
49 } 50 }
50 if _show_type == .privacy { 51 if _show_type == .privacy {
51 dataArray.add(["icon":"","name":"系统权限管理"]) 52 dataArray.add(["icon":"","name":"系统权限管理"])
@@ -272,12 +273,15 @@ extension CNLiveTypeFeedBackViewController { @@ -272,12 +273,15 @@ extension CNLiveTypeFeedBackViewController {
272 } 273 }
273 if _show_type == .setting { 274 if _show_type == .setting {
274 if indexPath.section == 0 { 275 if indexPath.section == 0 {
275 - self.navigationController?.pushViewController(CNLiveTypeFeedBackViewController.init(show_type: .privacy), animated: true) 276 + self.navigationController?.pushViewController(CNLiveMineBindingManagerController.init(), animated: true)
276 } 277 }
277 if indexPath.section == 1 { 278 if indexPath.section == 1 {
278 - self.navigationController?.pushViewController(CNLiveTypeFeedBackViewController.init(show_type: .about), animated: true) 279 + self.navigationController?.pushViewController(CNLiveTypeFeedBackViewController.init(show_type: .privacy), animated: true)
279 } 280 }
280 if indexPath.section == 2 { 281 if indexPath.section == 2 {
  282 + self.navigationController?.pushViewController(CNLiveTypeFeedBackViewController.init(show_type: .about), animated: true)
  283 + }
  284 + if indexPath.section == 3 {
281 self.navigationController?.pushViewController(CNLiveMineSignOutViewController.init(), animated: true) 285 self.navigationController?.pushViewController(CNLiveMineSignOutViewController.init(), animated: true)
282 } 286 }
283 } 287 }
metaCode/Classes/Main/MinePage/View/CNBindingManageCell.swift 0 → 100644
  1 +//
  2 +// CNBindingManageCell.swift
  3 +// metaCode
  4 +//
  5 +// Created by zx on 2024/4/26.
  6 +//
  7 +
  8 +import Foundation
  9 +import CNLiveShareToolKit
  10 +import APButton
  11 +import CNLivePayCostModule
  12 +
  13 +typealias FinishBlock = (_ type: CNLiveDownSlideResponseType) -> Void
  14 +
  15 +class CNBindingManageCell:UITableViewCell{
  16 +
  17 + var finishBlock:FinishBlock?
  18 +
  19 + let appleBindBtnSubLayer = "appleBindBtnSubLayer"
  20 + let wxBindBtnSubLayer = "wxBindBtnSubLayer"
  21 +
  22 + var _bindModel:CNBindingManageModel?
  23 + var bindModel:CNBindingManageModel?{
  24 + get{
  25 + _bindModel
  26 + }
  27 + set{
  28 + _bindModel = newValue!
  29 +
  30 + if _bindModel?.title == "手机号"{
  31 + self.totalView.isHidden = false
  32 + self.bindTotalView.isHidden = true
  33 + self.phoneLabel.text = _bindModel?.desc ?? ""
  34 + }else if _bindModel?.title == "微信"{
  35 + self.totalView.isHidden = true
  36 + self.bindTotalView.isHidden = false
  37 + self.iconImgView.image = UIImage(named: "login_wechat")
  38 + self.nickNameLabel.text = "(\(UserInfoManager.shared.userInfo.nickName))"
  39 + if _bindModel?.isBinding == "0"{
  40 + self.bindButton.isSelected = false
  41 + let follLayer = self.subLayer(name: appleBindBtnSubLayer, viewLayer: self.bindButton.layer)
  42 + follLayer?.removeFromSuperlayer()
  43 +
  44 + let payLayer = self.subLayer(name: wxBindBtnSubLayer, viewLayer: self.bindButton.layer)
  45 + if (payLayer != nil){
  46 + //已添加layer
  47 + }else{
  48 + //未添加layer
  49 + let gradient = CAGradientLayer()
  50 + gradient.frame = self.bounds
  51 + gradient.colors = [UIColor(red: 0.4, green: 0.77, blue: 1, alpha: 1).cgColor, UIColor(red: 0.38, green: 0.6, blue: 1, alpha: 1).cgColor]
  52 + gradient.locations = [0, 1]
  53 + gradient.startPoint = CGPoint(x: 0.5, y: 0)
  54 + gradient.endPoint = CGPoint(x: 1, y: 1)
  55 + gradient.name = wxBindBtnSubLayer
  56 + self.bindButton.layer.insertSublayer(gradient, at: 0)
  57 + self.bindButton.backgroundColor = .clear
  58 + }
  59 +
  60 + }else{
  61 + let afollLayer = self.subLayer(name: appleBindBtnSubLayer, viewLayer: self.bindButton.layer)
  62 + afollLayer?.removeFromSuperlayer()
  63 +
  64 + let follLayer = self.subLayer(name: wxBindBtnSubLayer, viewLayer: self.bindButton.layer)
  65 + follLayer?.removeFromSuperlayer()
  66 + self.bindButton.isSelected = true
  67 + self.bindButton.backgroundColor = UIColor(red: 0.92, green: 0.92, blue: 0.92, alpha: 1)
  68 + }
  69 + }else if _bindModel?.title == "苹果"{
  70 + self.totalView.isHidden = true
  71 + self.bindTotalView.isHidden = false
  72 + self.iconImgView.image = UIImage(named: "login_apple_icon")
  73 + self.nickNameLabel.text = "(\(UserInfoManager.shared.userInfo.nickName))"
  74 + if _bindModel?.isBinding == "0"{
  75 + self.bindButton.isSelected = false
  76 + let follLayer = self.subLayer(name: wxBindBtnSubLayer, viewLayer: self.bindButton.layer)
  77 + follLayer?.removeFromSuperlayer()
  78 +
  79 + let payLayer = self.subLayer(name: appleBindBtnSubLayer, viewLayer: self.bindButton.layer)
  80 +
  81 + if (payLayer != nil){
  82 + //已添加layer
  83 + }else{
  84 + //未添加layer
  85 + let gradient = CAGradientLayer()
  86 + gradient.frame = self.bounds
  87 + gradient.colors = [UIColor(red: 0.4, green: 0.77, blue: 1, alpha: 1).cgColor, UIColor(red: 0.38, green: 0.6, blue: 1, alpha: 1).cgColor]
  88 + gradient.locations = [0, 1]
  89 + gradient.startPoint = CGPoint(x: 0.5, y: 0)
  90 + gradient.endPoint = CGPoint(x: 1, y: 1)
  91 + gradient.name = appleBindBtnSubLayer
  92 + self.bindButton.layer.insertSublayer(gradient, at: 0)
  93 + self.bindButton.backgroundColor = .clear
  94 + }
  95 + }else{
  96 + let afollLayer = self.subLayer(name: wxBindBtnSubLayer, viewLayer: self.bindButton.layer)
  97 + afollLayer?.removeFromSuperlayer()
  98 +
  99 + let follLayer = self.subLayer(name: appleBindBtnSubLayer, viewLayer: self.bindButton.layer)
  100 + follLayer?.removeFromSuperlayer()
  101 + self.bindButton.isSelected = true
  102 + self.bindButton.backgroundColor = UIColor(red: 0.92, green: 0.92, blue: 0.92, alpha: 1)
  103 + }
  104 + }
  105 + }
  106 + }
  107 +
  108 + lazy var totalView :UIView = {
  109 + let totalView = UIView(frame: CGRect(x: 15, y: 0, width: KSreenWidth-30, height: 70))
  110 + totalView.backgroundColor = .white
  111 + totalView.layer.cornerRadius = 9
  112 + totalView.layer.masksToBounds = true
  113 + return totalView
  114 + }()
  115 +
  116 + lazy var changePhoneLabel: UILabel = {
  117 + let titleLabel = UILabel.init(frame: CGRectMake(19, 0, 100, 21))
  118 + titleLabel.centerY = self.centerY
  119 + titleLabel.textColor = HexColor("#333333")
  120 + titleLabel.text = "更换手机号"
  121 + titleLabel.textAlignment = .left
  122 + titleLabel.font = Font_15
  123 + return titleLabel
  124 + }()
  125 +
  126 + lazy var phoneLabel: UILabel = {
  127 + let titleLabel = UILabel.init(frame: CGRectMake(self.totalView.right-130, 0, 100, 21))
  128 + titleLabel.centerY = self.centerY
  129 + titleLabel.textColor = HexColor("#999999")
  130 + titleLabel.text = "130xxxx1123"
  131 + titleLabel.textAlignment = .left
  132 + titleLabel.font = Font_15
  133 + return titleLabel
  134 + }()
  135 +
  136 + lazy var moreImgView :UIImageView = {
  137 + let moreImgView = UIImageView()
  138 + moreImgView.image = UIImage(named: "mine_set_band_detail")
  139 + return moreImgView
  140 + }()
  141 +
  142 + //绑定总视图
  143 + lazy var bindTotalView :UIView = {
  144 + let totalView = UIView(frame: CGRect(x: 15, y: 0, width: KSreenWidth-30, height: 70))
  145 + totalView.backgroundColor = .white
  146 + totalView.layer.cornerRadius = 9
  147 + totalView.layer.masksToBounds = true
  148 + return totalView
  149 + }()
  150 + lazy var iconImgView :UIImageView = {
  151 + let moreImgView = UIImageView()
  152 + return moreImgView
  153 + }()
  154 + lazy var nameLabel: UILabel = {
  155 + let titleLabel = UILabel.init()
  156 + titleLabel.textColor = HexColor("#333333")
  157 + titleLabel.textAlignment = .left
  158 + titleLabel.font = Font_15
  159 + return titleLabel
  160 + }()
  161 + lazy var nickNameLabel: UILabel = {
  162 + let titleLabel = UILabel.init()
  163 + titleLabel.textColor = HexColor("#999999")
  164 + titleLabel.textAlignment = .left
  165 + titleLabel.font = Font_15
  166 + return titleLabel
  167 + }()
  168 + lazy var bindButton: UIButton = {
  169 + let bindButton = UIButton()
  170 + bindButton.setTitle("未绑定", for: .normal)
  171 + bindButton.setTitle("已绑定", for: .selected)
  172 + bindButton.setTitleColor(.white, for: .normal)
  173 + bindButton.setTitleColor(HexColor("#999999"), for: .selected)
  174 + bindButton.titleLabel?.font = Font_14_Fit
  175 + bindButton.layer.cornerRadius = 15.5
  176 + bindButton.layer.masksToBounds = true
  177 + bindButton.addTarget(self, action: #selector(bindButtonAction), for: .touchUpInside)
  178 +
  179 + return bindButton
  180 + }()
  181 +
  182 +
  183 + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
  184 + super.init(style: style, reuseIdentifier: reuseIdentifier)
  185 + self.selectionStyle = .none
  186 + self.backgroundColor = .clear
  187 + contentView.backgroundColor = .clear
  188 + self.initUI()
  189 + }
  190 +
  191 + required init?(coder: NSCoder) {
  192 + fatalError("init(coder:) has not been implemented")
  193 + }
  194 +
  195 + func initUI(){
  196 + self.contentView.addSubview(self.totalView)
  197 + self.totalView.addSubview(self.changePhoneLabel)
  198 + self.totalView.addSubview(self.phoneLabel)
  199 + self.totalView.addSubview(self.moreImgView)
  200 +
  201 + self.changePhoneLabel.snp.makeConstraints { make in
  202 + make.left.equalToSuperview().offset(19)
  203 + make.centerY.equalToSuperview()
  204 + }
  205 + self.phoneLabel.snp.makeConstraints { make in
  206 + make.right.equalToSuperview().offset(-31)
  207 + make.centerY.equalToSuperview()
  208 + }
  209 + self.moreImgView.snp.makeConstraints { make in
  210 + make.right.equalToSuperview().offset(-15)
  211 + make.width.height.equalTo(15)
  212 + make.centerY.equalToSuperview()
  213 + }
  214 +
  215 + self.contentView.addSubview(self.bindTotalView)
  216 + self.bindTotalView.addSubview(self.iconImgView)
  217 + self.bindTotalView.addSubview(self.nameLabel)
  218 + self.bindTotalView.addSubview(self.nickNameLabel)
  219 + self.bindTotalView.addSubview(self.bindButton)
  220 + self.iconImgView.snp.makeConstraints { make in
  221 + make.left.equalToSuperview().offset(15)
  222 + make.centerY.equalToSuperview()
  223 + }
  224 + self.nameLabel.snp.makeConstraints { make in
  225 + make.left.equalTo(self.iconImgView.snp.right).offset(10)
  226 + make.centerY.equalToSuperview()
  227 + }
  228 + self.nickNameLabel.snp.makeConstraints { make in
  229 + make.left.equalTo(self.nameLabel.snp.right).offset(5)
  230 + make.centerY.equalToSuperview()
  231 + }
  232 + self.bindButton.snp.makeConstraints { make in
  233 + make.right.equalToSuperview().offset(-15)
  234 + make.width.equalTo(80)
  235 + make.height.equalTo(31)
  236 + make.centerY.equalToSuperview()
  237 + }
  238 +
  239 + }
  240 +
  241 + func subLayer(name:String,viewLayer:CALayer) -> CALayer?{
  242 + if let subLayer = viewLayer.sublayers?.first(where: { $0.name == name }) {
  243 + // 这里可以对获取到的子图层进行操作或者访问其属性等
  244 + return subLayer
  245 + } else {
  246 +// print("未找到指定名称的图层")
  247 + return nil
  248 + }
  249 + }
  250 +
  251 + @objc func bindButtonAction(){
  252 + if self.bindButton.isSelected{
  253 + //已绑定
  254 + AlertTool.showSystemAlert(title: "确定解除绑定?", message: "", actionTitles: ["确定","取消"], style: .alert) { index in
  255 + if index == 1 {
  256 + self.requestBindingManage(model: self.bindModel!)
  257 + }
  258 + }
  259 + }else{
  260 + //未绑定 , 执行绑定操作
  261 + self.requestBindingManage(model: self.bindModel!)
  262 + }
  263 + }
  264 +
  265 + func requestBindingManage(model:CNBindingManageModel){
  266 + if model.type == CNLiveSendAuthRespWX{
  267 + if !WXApi.isWXAppInstalled(){
  268 + showMessage(message: "未安装微信")
  269 + }
  270 + }else if model.type == CNLiveSendAuthRespApple{
  271 +
  272 + }
  273 + if model.isBinding == "1"{
  274 + //解除绑定操作
  275 + CNLiveMineViewModel.requestUnBindingModel(model: self.bindModel!) { result, status in
  276 + if status == .success{
  277 + self.finishBlock?(.success)
  278 + }
  279 + }
  280 + }else{
  281 + //绑定操作
  282 + CNLiveMineViewModel.requestBindingModel(model: self.bindModel!) { result, status in
  283 + if status == .success{
  284 + self.finishBlock?(.success)
  285 + }
  286 + }
  287 + }
  288 + }
  289 +}
metaCode/Classes/Main/MinePage/ViewModel/CNBindingManageModel.swift 0 → 100644
  1 +//
  2 +// CNBindingManageModel.swift
  3 +// metaCode
  4 +//
  5 +// Created by zx on 2024/4/26.
  6 +//
  7 +
  8 +import Foundation
  9 +import CNLiveShareToolKit
  10 +
  11 +class CNBindingManageModel:BaseModel{
  12 + var title = ""
  13 + var desc = ""
  14 + var image = ""
  15 + var isBinding = ""//是否绑定
  16 + var thirdPartyPlat = ""
  17 + var thirdPartyId = ""
  18 + var _type:CNLiveSendAuthResp = CNLiveSendAuthRespWX
  19 + var type:CNLiveSendAuthResp{
  20 + get{
  21 + _type = CNLiveSendAuthRespWX
  22 + if self.thirdPartyPlat == "1"{
  23 + _type = CNLiveSendAuthRespWB
  24 + }else if self.thirdPartyPlat == "2"{
  25 + _type = CNLiveSendAuthRespQQ
  26 + }else if self.thirdPartyPlat == "3"{
  27 + _type = CNLiveSendAuthRespWX
  28 + }else if self.thirdPartyPlat == "5"{
  29 + _type = CNLiveSendAuthRespApple
  30 + }
  31 + return _type
  32 + }
  33 + }
  34 +
  35 +}
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineViewModel.swift
@@ -9,6 +9,7 @@ import Foundation @@ -9,6 +9,7 @@ import Foundation
9 import CNLiveRequestBastKit 9 import CNLiveRequestBastKit
10 import HandyJSON 10 import HandyJSON
11 import AFNetworking 11 import AFNetworking
  12 +import CNLiveShareToolKit
12 13
13 enum CNLiveMineRequestType { 14 enum CNLiveMineRequestType {
14 case icon 15 case icon
@@ -32,8 +33,179 @@ enum CNLiveMineGetWriteType { @@ -32,8 +33,179 @@ enum CNLiveMineGetWriteType {
32 } 33 }
33 typealias resultBlock = (_ type: CNLiveMineRequestType,_ result: Bool) -> Void 34 typealias resultBlock = (_ type: CNLiveMineRequestType,_ result: Bool) -> Void
34 typealias resultNewsBlock = (_ result: Any,_ respStatue :CNLiveMineResponseType) -> Void 35 typealias resultNewsBlock = (_ result: Any,_ respStatue :CNLiveMineResponseType) -> Void
  36 +typealias bindingResultBlock = (_ unBindingArr: Any) -> Void//三方登录绑定查询
  37 +
35 class CNLiveMineViewModel: NSObject { 38 class CNLiveMineViewModel: NSObject {
36 39
  40 + /**
  41 + * @abstract 获取绑定数据
  42 + *
  43 + * @param block 回调
  44 + */
  45 + static func requestModels(resultBlock: @escaping bindingResultBlock) {
  46 + let unBindingData = NSMutableArray()
  47 + var tmodel = CNBindingManageModel()
  48 + tmodel.title = "手机号"
  49 + tmodel.image = ""
  50 + if UserInfoManager.shared.userInfo.mobile.count > 0{
  51 + if UserInfoManager.shared.userInfo.mobile.count > 10{
  52 + let originalMobile = UserInfoManager.shared.userInfo.mobile
  53 + let rangeToReplace = originalMobile.index(originalMobile.startIndex, offsetBy: 3)..<originalMobile.index(originalMobile.startIndex, offsetBy: 7)
  54 + let maskedMobile = originalMobile.replacingCharacters(in: rangeToReplace, with: "****")
  55 + tmodel.desc = maskedMobile
  56 + }
  57 + tmodel.thirdPartyId = UserInfoManager.shared.userInfo.qqUid
  58 + tmodel.isBinding = "1"
  59 + }else{
  60 + tmodel.desc = "未绑定手机号"
  61 + tmodel.isBinding = "0"
  62 + }
  63 + tmodel.thirdPartyPlat = "10"
  64 + tmodel.thirdPartyId = UserInfoManager.shared.userInfo.uid
  65 + unBindingData.add(tmodel)
  66 +
  67 + let wmodel = CNBindingManageModel()
  68 + wmodel.title = "微信"
  69 + wmodel.image = "login_wechat"
  70 + wmodel.thirdPartyPlat = "3"
  71 + if UserInfoManager.shared.userInfo.wxUid.count > 0{
  72 + wmodel.desc = "已绑定微信"
  73 + wmodel.thirdPartyId = UserInfoManager.shared.userInfo.wxUid
  74 + wmodel.isBinding = "1"
  75 + }else{
  76 + wmodel.desc = "未绑定微信"
  77 + wmodel.isBinding = "0"
  78 + }
  79 + unBindingData.add(wmodel)
  80 +
  81 + if #available(iOS 13, *) {
  82 + let amodel = CNBindingManageModel()
  83 + amodel.title = "苹果"
  84 + amodel.image = "login_apple_icon"
  85 + amodel.thirdPartyPlat = "5"
  86 + if UserInfoManager.shared.userInfo.appleUid.count > 0{
  87 + amodel.desc = "已绑定苹果账号"
  88 + amodel.thirdPartyId = UserInfoManager.shared.userInfo.appleUid
  89 + amodel.isBinding = "1"
  90 + }else{
  91 + amodel.desc = "未绑定苹果账号"
  92 + amodel.isBinding = "0"
  93 + }
  94 + unBindingData.add(amodel)
  95 + } else {
  96 +
  97 + }
  98 + resultBlock(unBindingData)
  99 + }
  100 +
  101 + /// 解除绑定
  102 + static func requestUnBindingModel(model: CNBindingManageModel, resultBlock: @escaping downSlideResultBlock) {
  103 +
  104 + let param = NSMutableDictionary.init()
  105 + param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "uid")
  106 + param.setValue(model.thirdPartyPlat, forKey: "thirdPartyPlat")
  107 + param.setValue(model.thirdPartyId, forKey: "thirdPartyId")
  108 + param.setValue(UserInfoManager.shared.userInfo.token, forKey: "token")
  109 + param.setValue("i", forKey: "clientPlat")
  110 + showLoading(message: "")
  111 + let custom_param = NSMutableDictionary()
  112 + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId")
  113 + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey")
  114 + CNLiveNetworking.setupCustomParam(custom_param as? [String : String])
  115 + CNLiveNetworking.setAllowRequestDefaultArgument(true)
  116 + CNLiveNetworking.setupShowDataResult(false)
  117 + CNLiveNetworking.setupShowResult(true)
  118 + CNLiveNetworking.requestNetwork(with: .POST, urlString: APPLoginHost+"/open/api2/user/unBind3rd", param: param as! [String : Any], cacheType: .networkOnly) { task, result, error in
  119 + hiddenLoading()
  120 + if (error == nil) {
  121 + let resp = result as! NSDictionary
  122 + let errorCode = resp["errorCode"]
  123 + if (errorCode as! String == "0") {
  124 + model.isBinding = "0"
  125 + var userModel = UserInfoManager.readUserInfo()
  126 + if model.thirdPartyPlat == "3"{
  127 + userModel.wxUid = ""
  128 + }else if model.thirdPartyPlat == "5"{
  129 + userModel.appleUid = ""
  130 + }
  131 + UserInfoManager.cacheUserInfo(userInfo: userModel)
  132 + resultBlock(model, .success)
  133 + } else {
  134 + showMessage(message: resp["errorMessage"] as! String)
  135 + resultBlock(NSNull(), .failed)
  136 + }
  137 + } else {
  138 + resultBlock(NSNull(), .failed)
  139 + }
  140 + }
  141 + }
  142 +
  143 + /// 绑定
  144 + static func requestBindingModel(model: CNBindingManageModel, resultBlock: @escaping downSlideResultBlock) {
  145 + // 获取第三方id
  146 + CNLiveShareImageManager.send(model.type) { resp, userInfo, error in
  147 + if (error != nil){
  148 + if let err = error as? NSError{
  149 + if err.code == 10000{//用户取消
  150 +
  151 + }else{
  152 + showMessage(message: "绑定失败")
  153 + }
  154 + return
  155 + }else{
  156 + showMessage(message: "绑定失败")
  157 + }
  158 + return
  159 + }
  160 + if userInfo?.thirdPartyId.count ?? 0 > 0{
  161 + // 发起绑定请求
  162 + model.thirdPartyId = userInfo!.thirdPartyId
  163 +
  164 + let param = NSMutableDictionary.init()
  165 + param.setValue(UserInfoManager.shared.userInfo.uid, forKey: "uid")
  166 + param.setValue(model.thirdPartyPlat, forKey: "thirdPartyPlat")
  167 + param.setValue(model.thirdPartyId, forKey: "thirdPartyId")
  168 + param.setValue(UserInfoManager.shared.userInfo.token, forKey: "token")
  169 + param.setValue("i", forKey: "clientPlat")
  170 + showLoading(message: "")
  171 + let custom_param = NSMutableDictionary()
  172 + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId")
  173 + custom_param.setValue(CNLiveMCEnvironmentManager.shared.appKey, forKey: "appKey")
  174 + CNLiveNetworking.setupCustomParam(custom_param as? [String : String])
  175 + CNLiveNetworking.setAllowRequestDefaultArgument(true)
  176 + CNLiveNetworking.setupShowDataResult(false)
  177 + CNLiveNetworking.setupShowResult(true)
  178 + CNLiveNetworking.requestNetwork(with: .POST, urlString: APPLoginHost+"/open/api2/user/bind3rd", param: param as! [String : Any], cacheType: .networkOnly) { task, result, error in
  179 + hiddenLoading()
  180 + if (error == nil) {
  181 + let resp = result as! NSDictionary
  182 + let errorCode = resp["errorCode"]
  183 + if (errorCode as! String == "0") {
  184 + model.isBinding = "1"
  185 + var userModel = UserInfoManager.readUserInfo()
  186 + if model.thirdPartyPlat == "3"{
  187 + userModel.wxUid = model.thirdPartyId
  188 + }else if model.thirdPartyPlat == "5"{
  189 + userModel.appleUid = model.thirdPartyId
  190 + }
  191 + UserInfoManager.cacheUserInfo(userInfo: userModel)
  192 + resultBlock(model, .success)
  193 + } else {
  194 + showMessage(message: resp["errorMessage"] as! String)
  195 + resultBlock(NSNull(), .failed)
  196 + }
  197 + } else {
  198 + resultBlock(NSNull(), .failed)
  199 + }
  200 + }
  201 +
  202 + }else{
  203 + showMessage(message: "绑定失败")
  204 + }
  205 +
  206 + }
  207 + }
  208 +
37 /// 提交更新用户单项数据 209 /// 提交更新用户单项数据
38 /// - Parameters: 210 /// - Parameters:
39 /// - type: nickName-昵称,gender-性别,email-邮箱, location-联系方式,birthday-生日yyyy-MM-dd 211 /// - type: nickName-昵称,gender-性别,email-邮箱, location-联系方式,birthday-生日yyyy-MM-dd
metaCode/Supporting Files/Assets.xcassets/LoginPage/Login_page_header_icon.imageset/Login_page_header_icon@2x.png

115 KB | W: | H:

171 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
metaCode/Supporting Files/Assets.xcassets/LoginPage/Login_page_header_icon.imageset/Login_page_header_icon@3x.png

409 KB | W: | H:

561 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
metaCode/Supporting Files/Assets.xcassets/MinePage/login_apple_icon.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "login_apple_icon@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "login_apple_icon@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/MinePage/login_apple_icon.imageset/login_apple_icon@2x.png 0 → 100644

2.54 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/login_apple_icon.imageset/login_apple_icon@3x.png 0 → 100644

4.8 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/login_wechat.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "login_wechat@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "login_wechat@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/MinePage/login_wechat.imageset/login_wechat@2x.png 0 → 100644

3.9 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/login_wechat.imageset/login_wechat@3x.png 0 → 100644

7.83 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_band_detail.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "mine_set_band_detail@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "mine_set_band_detail@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_band_detail.imageset/mine_set_band_detail@2x.png 0 → 100644

340 Bytes

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_band_detail.imageset/mine_set_band_detail@3x.png 0 → 100644

632 Bytes

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_bangding.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "mine_set_bangding@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "mine_set_bangding@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_bangding.imageset/mine_set_bangding@2x.png 0 → 100644

1.19 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_bangding.imageset/mine_set_bangding@3x.png 0 → 100644

2.67 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_zhuxiao.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "filename" : "mine_set_zhuxiao@2x.png",
  9 + "idiom" : "universal",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "filename" : "mine_set_zhuxiao@3x.png",
  14 + "idiom" : "universal",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "author" : "xcode",
  20 + "version" : 1
  21 + }
  22 +}
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_zhuxiao.imageset/mine_set_zhuxiao@2x.png 0 → 100644

1.01 KB

metaCode/Supporting Files/Assets.xcassets/MinePage/mine_set_zhuxiao.imageset/mine_set_zhuxiao@3x.png 0 → 100644

1.83 KB