Commit 84ef1fb563b612a94421cef259b2ab48d5ccac56
1 parent
4b46ed20
1.登录页苹果登录 , 微信登录 2.我的-绑定管理 微信,苹果
Showing
23 changed files
with
717 additions
and
3 deletions
metaCode.xcodeproj/project.pbxproj
| ... | ... | @@ -128,6 +128,9 @@ |
| 128 | 128 | 19BB202B2AF382150094D962 /* CNLiveAdaptTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */; }; |
| 129 | 129 | 19C0F7672BD8DC4D0097CC8F /* CNThreeLoginModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */; }; |
| 130 | 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 | 134 | 19CC4D472ADD006600308E2A /* CNDownSlideSingleCourseCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */; }; |
| 132 | 135 | 19CC4D492ADD06C500308E2A /* UITableView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */; }; |
| 133 | 136 | 19CC4D4B2ADD086F00308E2A /* CNUpSlideDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */; }; |
| ... | ... | @@ -405,6 +408,9 @@ |
| 405 | 408 | 19BB202A2AF382150094D962 /* CNLiveAdaptTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveAdaptTool.swift; sourceTree = "<group>"; }; |
| 406 | 409 | 19C0F7662BD8DC4D0097CC8F /* CNThreeLoginModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNThreeLoginModel.swift; sourceTree = "<group>"; }; |
| 407 | 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 | 414 | 19CC4D462ADD006600308E2A /* CNDownSlideSingleCourseCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNDownSlideSingleCourseCell.swift; sourceTree = "<group>"; }; |
| 409 | 415 | 19CC4D482ADD06C500308E2A /* UITableView+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableView+Extension.swift"; sourceTree = "<group>"; }; |
| 410 | 416 | 19CC4D4A2ADD086F00308E2A /* CNUpSlideDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNUpSlideDetailViewController.swift; sourceTree = "<group>"; }; |
| ... | ... | @@ -1134,6 +1140,7 @@ |
| 1134 | 1140 | 79803E262AD68D3100F05F68 /* CNLiveMineShopViewController.swift */, |
| 1135 | 1141 | 79E672022AFDFA9C00F2F768 /* CNLiveMineSignOutViewController.swift */, |
| 1136 | 1142 | 79DC67632B5FB60900261A94 /* CNLiveMineAuthFormViewController.swift */, |
| 1143 | + 19C0F76A2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift */, | |
| 1137 | 1144 | ); |
| 1138 | 1145 | path = Controller; |
| 1139 | 1146 | sourceTree = "<group>"; |
| ... | ... | @@ -1325,6 +1332,7 @@ |
| 1325 | 1332 | 798A44F12A30674200815935 /* CNLiveMineSubBodyListView.swift */, |
| 1326 | 1333 | 79F4B11B2A33036E00993C03 /* CNLiveMineInfoAlertView.swift */, |
| 1327 | 1334 | 79803E282AD6991200F05F68 /* CNLiveMineInputMessageView.swift */, |
| 1335 | + 19C0F76C2BDB48750097CC8F /* CNBindingManageCell.swift */, | |
| 1328 | 1336 | ); |
| 1329 | 1337 | path = View; |
| 1330 | 1338 | sourceTree = "<group>"; |
| ... | ... | @@ -1334,6 +1342,7 @@ |
| 1334 | 1342 | children = ( |
| 1335 | 1343 | 7978A8422A396632007C86B8 /* CNLiveMineViewModel.swift */, |
| 1336 | 1344 | 790B1FB32A4153E90074CF00 /* CNLiveMineBaseModel.swift */, |
| 1345 | + 19C0F76E2BDB4CE10097CC8F /* CNBindingManageModel.swift */, | |
| 1337 | 1346 | ); |
| 1338 | 1347 | path = ViewModel; |
| 1339 | 1348 | sourceTree = "<group>"; |
| ... | ... | @@ -1774,6 +1783,7 @@ |
| 1774 | 1783 | 191733502B2C3E1F007BCC04 /* CNLivePickerView.swift in Sources */, |
| 1775 | 1784 | 191733622B3538DC007BCC04 /* CNLiveShopCouponsManagerViewController.swift in Sources */, |
| 1776 | 1785 | 191732902B0348F6007BCC04 /* CNLiveSwitchView.swift in Sources */, |
| 1786 | + 19C0F76B2BDB432A0097CC8F /* CNLiveMineBindingManagerController.swift in Sources */, | |
| 1777 | 1787 | 792B53282AFCD7640009AB49 /* CNLiveShopOrderExpressDetailViewController.swift in Sources */, |
| 1778 | 1788 | 79396EF12A31C21B0053E1AF /* CNLiveInfoShowViewController.swift in Sources */, |
| 1779 | 1789 | 191733422B284D5E007BCC04 /* CNLiveShopCouponCreateBottomView.swift in Sources */, |
| ... | ... | @@ -1859,6 +1869,7 @@ |
| 1859 | 1869 | 191733662B39237D007BCC04 /* CNLiveShopGoodsManageListTableViewCell.swift in Sources */, |
| 1860 | 1870 | 793CAF522A58FCA200882EF4 /* CNLiveMineExchangeViewController.swift in Sources */, |
| 1861 | 1871 | 1917334E2B2C1A08007BCC04 /* CNLiveSelectCouponTapView.swift in Sources */, |
| 1872 | + 19C0F76F2BDB4CE10097CC8F /* CNBindingManageModel.swift in Sources */, | |
| 1862 | 1873 | 191733272B148BB1007BCC04 /* CNLivePlayerFastForwardPreviewView.swift in Sources */, |
| 1863 | 1874 | 7CD675522A29C04B008354C1 /* CNLiveConfigstant.swift in Sources */, |
| 1864 | 1875 | 79282A402A2F055100B5F8CF /* CNLiveConfigUserInfo.swift in Sources */, |
| ... | ... | @@ -1885,6 +1896,7 @@ |
| 1885 | 1896 | 798A44FD2A309EBA00815935 /* CNLiveTypeFeedBackViewController.swift in Sources */, |
| 1886 | 1897 | 79656E382AAEBA8E00119A61 /* CNLiveMineInputViewController.swift in Sources */, |
| 1887 | 1898 | 19CC4D522ADD129800308E2A /* CNUpSlideAnimationTransition.swift in Sources */, |
| 1899 | + 19C0F76D2BDB48750097CC8F /* CNBindingManageCell.swift in Sources */, | |
| 1888 | 1900 | 1917331D2B10A15A007BCC04 /* CNLivePlayerFailureView.swift in Sources */, |
| 1889 | 1901 | 7CD6754F2A2840B9008354C1 /* CNMetaCodeHomePageController.swift in Sources */, |
| 1890 | 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 | 43 | dataArray.add(["icon":"mine_list_sub_set_sugges","name":"产品建议"]) |
| 44 | 44 | } |
| 45 | 45 | if _show_type == .setting { |
| 46 | + dataArray.add(["icon":"mine_set_bangding","name":"绑定管理"]) | |
| 46 | 47 | dataArray.add(["icon":"mine_list_sub_set_privacy","name":"隐私"]) |
| 47 | 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 | 51 | if _show_type == .privacy { |
| 51 | 52 | dataArray.add(["icon":"","name":"系统权限管理"]) |
| ... | ... | @@ -272,12 +273,15 @@ extension CNLiveTypeFeedBackViewController { |
| 272 | 273 | } |
| 273 | 274 | if _show_type == .setting { |
| 274 | 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 | 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 | 281 | if indexPath.section == 2 { |
| 282 | + self.navigationController?.pushViewController(CNLiveTypeFeedBackViewController.init(show_type: .about), animated: true) | |
| 283 | + } | |
| 284 | + if indexPath.section == 3 { | |
| 281 | 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 | 9 | import CNLiveRequestBastKit |
| 10 | 10 | import HandyJSON |
| 11 | 11 | import AFNetworking |
| 12 | +import CNLiveShareToolKit | |
| 12 | 13 | |
| 13 | 14 | enum CNLiveMineRequestType { |
| 14 | 15 | case icon |
| ... | ... | @@ -32,8 +33,179 @@ enum CNLiveMineGetWriteType { |
| 32 | 33 | } |
| 33 | 34 | typealias resultBlock = (_ type: CNLiveMineRequestType,_ result: Bool) -> Void |
| 34 | 35 | typealias resultNewsBlock = (_ result: Any,_ respStatue :CNLiveMineResponseType) -> Void |
| 36 | +typealias bindingResultBlock = (_ unBindingArr: Any) -> Void//三方登录绑定查询 | |
| 37 | + | |
| 35 | 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 | 210 | /// - Parameters: |
| 39 | 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
metaCode/Supporting Files/Assets.xcassets/LoginPage/Login_page_header_icon.imageset/Login_page_header_icon@3x.png
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