Commit ce92fb65c42324b7c64161e79e632046f023e24e
Merge branch 'master' of bj.gitlab.cnlive.com:ios-team/CNLiveMateCode
Showing
7 changed files
with
173 additions
and
5 deletions
metaCode.xcodeproj/project.pbxproj
| ... | ... | @@ -33,6 +33,7 @@ |
| 33 | 33 | 798A44EC2A302DBE00815935 /* CNLiveMineAddInfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 798A44EB2A302DBE00815935 /* CNLiveMineAddInfoViewController.swift */; }; |
| 34 | 34 | 798A44EE2A305AAC00815935 /* CNLiveBaseNavigationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 798A44ED2A305AAC00815935 /* CNLiveBaseNavigationController.swift */; }; |
| 35 | 35 | 798A44F02A305BC200815935 /* UIButton+CNLiveExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 798A44EF2A305BC200815935 /* UIButton+CNLiveExtension.swift */; }; |
| 36 | + 798A44F22A30674200815935 /* CNLiveMineSubBodyListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 798A44F12A30674200815935 /* CNLiveMineSubBodyListView.swift */; }; | |
| 36 | 37 | 79A68C4A2A26E6CE00DC3B43 /* (null) in Sources */ = {isa = PBXBuildFile; }; |
| 37 | 38 | 79A68C4C2A26EA6000DC3B43 /* (null) in Sources */ = {isa = PBXBuildFile; }; |
| 38 | 39 | 7C4931292A2D8BA8000E44B4 /* CNLiveBaseTabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C4931282A2D8BA8000E44B4 /* CNLiveBaseTabBarViewController.swift */; }; |
| ... | ... | @@ -109,6 +110,7 @@ |
| 109 | 110 | 798A44EB2A302DBE00815935 /* CNLiveMineAddInfoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineAddInfoViewController.swift; sourceTree = "<group>"; }; |
| 110 | 111 | 798A44ED2A305AAC00815935 /* CNLiveBaseNavigationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveBaseNavigationController.swift; sourceTree = "<group>"; }; |
| 111 | 112 | 798A44EF2A305BC200815935 /* UIButton+CNLiveExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIButton+CNLiveExtension.swift"; sourceTree = "<group>"; }; |
| 113 | + 798A44F12A30674200815935 /* CNLiveMineSubBodyListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveMineSubBodyListView.swift; sourceTree = "<group>"; }; | |
| 112 | 114 | 79A68C512A26F59C00DC3B43 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = metaCode/Info.plist; sourceTree = "<group>"; }; |
| 113 | 115 | 7C4931282A2D8BA8000E44B4 /* CNLiveBaseTabBarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CNLiveBaseTabBarViewController.swift; sourceTree = "<group>"; }; |
| 114 | 116 | 7C49312C2A2DB9FA000E44B4 /* UITabBar+CNBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITabBar+CNBadge.swift"; sourceTree = "<group>"; }; |
| ... | ... | @@ -364,6 +366,7 @@ |
| 364 | 366 | children = ( |
| 365 | 367 | 798A44E72A30134400815935 /* CNLiveMineHeaderView.swift */, |
| 366 | 368 | 798A44E92A30135D00815935 /* CNLiveMineBodyListView.swift */, |
| 369 | + 798A44F12A30674200815935 /* CNLiveMineSubBodyListView.swift */, | |
| 367 | 370 | ); |
| 368 | 371 | path = View; |
| 369 | 372 | sourceTree = "<group>"; |
| ... | ... | @@ -733,6 +736,7 @@ |
| 733 | 736 | 7963989D2A260E6200D045EB /* CNLiveBaseViewController.swift in Sources */, |
| 734 | 737 | 790D01A52A2DF65E00C5978D /* CNLiveLoginPickerView.swift in Sources */, |
| 735 | 738 | 79282A3C2A2EDC2500B5F8CF /* NSString+CNLiveExtensions.swift in Sources */, |
| 739 | + 798A44F22A30674200815935 /* CNLiveMineSubBodyListView.swift in Sources */, | |
| 736 | 740 | 790D01822A2D88FC00C5978D /* CNLiveConfigMacro.swift in Sources */, |
| 737 | 741 | 7CD675482A274167008354C1 /* PGIndexBannerSubiew.m in Sources */, |
| 738 | 742 | 790D019F2A2DD66E00C5978D /* CNLiveLoginViewModel.swift in Sources */, | ... | ... |
metaCode/Classes/Common/Base/CNLiveBaseViewController.swift
| ... | ... | @@ -25,6 +25,18 @@ class CNLiveBaseViewController: UIViewController { |
| 25 | 25 | } |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | + /// 是否隐藏导航栏(默认 隐藏) | |
| 29 | + public var _navigationBarHidden: Bool = true | |
| 30 | + public var navigationBarHidden: Bool { | |
| 31 | + get { | |
| 32 | + return _navigationBarHidden | |
| 33 | + } | |
| 34 | + set { | |
| 35 | + _navigationBarHidden = newValue | |
| 36 | + topNavView.isHidden = _navigationBarHidden | |
| 37 | + } | |
| 38 | + } | |
| 39 | + | |
| 28 | 40 | /// 设置标题显示 |
| 29 | 41 | public var _titleName: String = "" |
| 30 | 42 | public var titleName: String { |
| ... | ... | @@ -133,6 +145,7 @@ class CNLiveBaseViewController: UIViewController { |
| 133 | 145 | |
| 134 | 146 | let tap = UITapGestureRecognizer.init(target: self, action: #selector(topNavViewTap)) |
| 135 | 147 | tap.cancelsTouchesInView = false |
| 148 | + topNavView.isHidden = true | |
| 136 | 149 | topNavView.addGestureRecognizer(tap) |
| 137 | 150 | topNavView.backgroundColor = HexColor("#F7F8FA") |
| 138 | 151 | return topNavView | ... | ... |
metaCode/Classes/Main/MinePage/Controller/CNLiveMineAddInfoViewController.swift
| ... | ... | @@ -7,16 +7,51 @@ |
| 7 | 7 | |
| 8 | 8 | import Foundation |
| 9 | 9 | |
| 10 | - | |
| 11 | -class CNLiveMineAddInfoViewController : CNLiveBaseViewController { | |
| 10 | +class CNLiveMineAddInfoViewController : CNLiveBaseViewController, UITableViewDelegate, UITableViewDataSource { | |
| 11 | + | |
| 12 | + let kCNLiveMineInfoLListTableViewIdentifier = "kCNLiveMineInfoLListTableViewIdentifier" | |
| 12 | 13 | |
| 14 | + lazy var tableView: UITableView = { | |
| 15 | + let tableView = UITableView(frame: .zero, style: .plain) | |
| 16 | + tableView.delegate = self | |
| 17 | + tableView.dataSource = self | |
| 18 | + tableView.backgroundColor = HexColor("#F7F8FA") | |
| 19 | + tableView.tableFooterView = UIView.init() | |
| 20 | + tableView.rowHeight = 100 | |
| 21 | + tableView.separatorStyle = .none | |
| 22 | + tableView.register(MineInfoLListTableViewCell.self, forCellReuseIdentifier: kCNLiveMineInfoLListTableViewIdentifier) | |
| 23 | + return tableView | |
| 24 | + }() | |
| 25 | + | |
| 26 | + override func viewWillAppear(_ animated: Bool) { | |
| 27 | + self.navigationBarHidden = false | |
| 28 | + } | |
| 13 | 29 | |
| 14 | 30 | override func viewDidLoad() { |
| 15 | 31 | super.viewDidLoad() |
| 16 | - view.backgroundColor = HexColor("#f9f9f9") | |
| 17 | - | |
| 18 | 32 | self.titleName = "添加身份" |
| 19 | - | |
| 33 | + view.addSubview(tableView) | |
| 34 | + tableView.snp.makeConstraints { make in | |
| 35 | + make.top.equalTo(get_system_nav_height()) | |
| 36 | + make.left.right.bottom.equalToSuperview() | |
| 37 | + } | |
| 20 | 38 | } |
| 39 | +} | |
| 40 | + | |
| 41 | +extension CNLiveMineAddInfoViewController { | |
| 21 | 42 | |
| 43 | + func numberOfSections(in tableView: UITableView) -> Int { | |
| 44 | + return 1 | |
| 45 | + } | |
| 46 | + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { | |
| 47 | + return 2 | |
| 48 | + } | |
| 49 | + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { | |
| 50 | + let cell = tableView.dequeueReusableCell(withIdentifier: kCNLiveMineInfoLListTableViewIdentifier) as! MineInfoLListTableViewCell | |
| 51 | + cell.setupWithDataSource(icon: "mine_header_icon_defult_ava", name: "志愿者身份") | |
| 52 | + return cell | |
| 53 | + } | |
| 54 | + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { | |
| 55 | + return 100 | |
| 56 | + } | |
| 22 | 57 | } | ... | ... |
metaCode/Classes/Main/MinePage/View/CNLiveMineSubBodyListView.swift
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveMineSubBodyListView.swift | |
| 3 | +// metaCode | |
| 4 | +// | |
| 5 | +// Created by open on 2023/6/7. | |
| 6 | +// | |
| 7 | + | |
| 8 | +import Foundation | |
| 9 | + | |
| 10 | +class MineInfoLListTableViewCell : UITableViewCell { | |
| 11 | + | |
| 12 | + lazy var mainView: UIImageView = { | |
| 13 | + let mainView = UIImageView.init() | |
| 14 | + mainView.contentMode = .scaleToFill | |
| 15 | + mainView.backgroundColor = .clear | |
| 16 | + mainView.isUserInteractionEnabled = true | |
| 17 | + mainView.image = UIImage(named: "mine_sub_list_add_info") | |
| 18 | + return mainView | |
| 19 | + }() | |
| 20 | + | |
| 21 | + lazy var iconView : UIImageView = { | |
| 22 | + let iconView = UIImageView.init() | |
| 23 | + iconView.contentMode = .scaleToFill | |
| 24 | + iconView.backgroundColor = .clear | |
| 25 | + iconView.layer.masksToBounds = true | |
| 26 | + iconView.layer.cornerRadius = 25 | |
| 27 | + return iconView | |
| 28 | + }() | |
| 29 | + | |
| 30 | + lazy var titleLabel: UILabel = { | |
| 31 | + let titleLabel = UILabel.init() | |
| 32 | + titleLabel.backgroundColor = .clear | |
| 33 | + titleLabel.textColor = .black | |
| 34 | + titleLabel.font = BoldFont_18_Fit | |
| 35 | + return titleLabel | |
| 36 | + }() | |
| 37 | + | |
| 38 | + lazy var addBtn: UIButton = { | |
| 39 | + let addBtn = UIButton.init(type: .custom) | |
| 40 | + addBtn.setTitle(" 去添加 ", for: .normal) | |
| 41 | + addBtn.setTitleColor(.white, for: .normal) | |
| 42 | + addBtn.backgroundColor = HexColor("#67C5FF") | |
| 43 | + addBtn.titleLabel?.font = BoldFont_15 | |
| 44 | + addBtn.layer.cornerRadius = 15 | |
| 45 | + addBtn.layer.masksToBounds = true | |
| 46 | + return addBtn | |
| 47 | + }() | |
| 48 | + | |
| 49 | + public func setupWithDataSource(icon: String, name: String) { | |
| 50 | + iconView.image = UIImage(named: icon) | |
| 51 | + titleLabel.text = name | |
| 52 | + } | |
| 53 | + | |
| 54 | + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { | |
| 55 | + super.init(style: style, reuseIdentifier: reuseIdentifier) | |
| 56 | + self.selectionStyle = .none | |
| 57 | + self.backgroundColor = .clear | |
| 58 | + | |
| 59 | + addSubview(mainView) | |
| 60 | + mainView.addSubview(iconView) | |
| 61 | + mainView.addSubview(titleLabel) | |
| 62 | + mainView.addSubview(addBtn) | |
| 63 | + | |
| 64 | + setupConstraints() | |
| 65 | + } | |
| 66 | + | |
| 67 | + func setupConstraints() { | |
| 68 | + mainView.snp.makeConstraints { make in | |
| 69 | + make.left.equalToSuperview().offset(15) | |
| 70 | + make.right.equalToSuperview().offset(-15) | |
| 71 | + make.top.equalToSuperview().offset(5) | |
| 72 | + make.bottom.equalToSuperview().offset(-5) | |
| 73 | + } | |
| 74 | + iconView.snp.makeConstraints { make in | |
| 75 | + make.centerY.equalToSuperview() | |
| 76 | + make.left.equalToSuperview().offset(15) | |
| 77 | + make.size.equalTo(50) | |
| 78 | + } | |
| 79 | + titleLabel.snp.makeConstraints { make in | |
| 80 | + make.centerY.equalToSuperview() | |
| 81 | + make.left.equalTo(iconView.snp.right).offset(10) | |
| 82 | + } | |
| 83 | + addBtn.snp.makeConstraints { make in | |
| 84 | + make.centerY.equalToSuperview() | |
| 85 | + make.right.equalToSuperview().offset(-15) | |
| 86 | + make.width.equalTo(80) | |
| 87 | + make.height.equalTo(30) | |
| 88 | + } | |
| 89 | + } | |
| 90 | + | |
| 91 | + required init?(coder: NSCoder) { | |
| 92 | + fatalError("init(coder:) has not been implemented") | |
| 93 | + } | |
| 94 | +} | ... | ... |
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_sub_list_add_info.imageset/Contents.json
0 → 100644
| 1 | +{ | |
| 2 | + "images" : [ | |
| 3 | + { | |
| 4 | + "idiom" : "universal", | |
| 5 | + "scale" : "1x" | |
| 6 | + }, | |
| 7 | + { | |
| 8 | + "filename" : "mine_sub_list_add_info@2x.png", | |
| 9 | + "idiom" : "universal", | |
| 10 | + "scale" : "2x" | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + "filename" : "mine_sub_list_add_info@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_sub_list_add_info.imageset/mine_sub_list_add_info@2x.png
0 → 100644
13.2 KB
metaCode/Supporting Files/Assets.xcassets/MinePage/mine_sub_list_add_info.imageset/mine_sub_list_add_info@3x.png
0 → 100644
35.2 KB