Commit b19ee7ec2ec6a987d6e4be1197a46ebdf4ec93b9

Authored by zhangxiaowen
1 parent c2cfe8c4

no message

CNLiveMineModule/Assets/CNLiveMineModule.xcassets/mine_back_black_b.imageset/Contents.json 0 → 100644
  1 +{
  2 + "images" : [
  3 + {
  4 + "idiom" : "universal",
  5 + "scale" : "1x"
  6 + },
  7 + {
  8 + "idiom" : "universal",
  9 + "filename" : "mine_back_black_b@2x.png",
  10 + "scale" : "2x"
  11 + },
  12 + {
  13 + "idiom" : "universal",
  14 + "filename" : "mine_back_black_b@3x.png",
  15 + "scale" : "3x"
  16 + }
  17 + ],
  18 + "info" : {
  19 + "version" : 1,
  20 + "author" : "xcode"
  21 + }
  22 +}
0 \ No newline at end of file 23 \ No newline at end of file
CNLiveMineModule/Assets/CNLiveMineModule.xcassets/mine_back_black_b.imageset/mine_back_black_b@2x.png 0 → 100644

1.49 KB

CNLiveMineModule/Assets/CNLiveMineModule.xcassets/mine_back_black_b.imageset/mine_back_black_b@3x.png 0 → 100644

1.79 KB

CNLiveMineModule/Classes/UserInfo/CNLiveInfoUpdateController.m
@@ -11,10 +11,11 @@ @@ -11,10 +11,11 @@
11 11
12 #import "CNLiveUserInfoModel.h" 12 #import "CNLiveUserInfoModel.h"
13 #import "CNLiveUserInfoNotification.h" 13 #import "CNLiveUserInfoNotification.h"
  14 +#import "CNLiveUserInfoNavigationBar.h"
14 15
15 -@interface CNLiveInfoUpdateController ()<UITextFieldDelegate,UITextViewDelegate> 16 +@interface CNLiveInfoUpdateController ()<UITextFieldDelegate,UITextViewDelegate,CNLiveUserInfoNavigationBarDelegate>
  17 +@property (nonatomic, strong) CNLiveUserInfoNavigationBar *navigationBar;
16 @property (nonatomic, strong) CNLiveUserInfoModel *model; 18 @property (nonatomic, strong) CNLiveUserInfoModel *model;
17 -@property (nonatomic, weak) UIButton *rightBtn;  
18 @property (nonatomic, weak) UITextField *textField; 19 @property (nonatomic, weak) UITextField *textField;
19 @property (nonatomic, weak) UITextView *textView; 20 @property (nonatomic, weak) UITextView *textView;
20 21
@@ -39,6 +40,10 @@ static const NSInteger margin = 15; @@ -39,6 +40,10 @@ static const NSInteger margin = 15;
39 } 40 }
40 41
41 #pragma mark - 生命周期 42 #pragma mark - 生命周期
  43 +- (void)viewWillAppear:(BOOL)animated{
  44 + [super viewWillAppear:animated];
  45 + self.navigationController.navigationBarHidden = YES;
  46 +}
42 47
43 - (void)viewDidLoad { 48 - (void)viewDidLoad {
44 [super viewDidLoad]; 49 [super viewDidLoad];
@@ -48,11 +53,11 @@ static const NSInteger margin = 15; @@ -48,11 +53,11 @@ static const NSInteger margin = 15;
48 else { 53 else {
49 self.automaticallyAdjustsScrollViewInsets = NO; 54 self.automaticallyAdjustsScrollViewInsets = NO;
50 } 55 }
51 - [self createNavigationbar]; 56 + [self.view addSubview:self.navigationBar];
52 switch (self.model.dataType) { 57 switch (self.model.dataType) {
53 case CNLiveUserInfoDataTypeNickname: 58 case CNLiveUserInfoDataTypeNickname:
54 { 59 {
55 - self.title = @"设置昵称"; 60 + self.navigationBar.title.text = @"设置昵称";
56 [self textField_layoutSubViews]; 61 [self textField_layoutSubViews];
57 self.textField.placeholder = @"请输入昵称"; 62 self.textField.placeholder = @"请输入昵称";
58 63
@@ -60,7 +65,7 @@ static const NSInteger margin = 15; @@ -60,7 +65,7 @@ static const NSInteger margin = 15;
60 break; 65 break;
61 case CNLiveUserInfoDataTypeAddress: 66 case CNLiveUserInfoDataTypeAddress:
62 { 67 {
63 - self.title = @"设置地区"; 68 + self.navigationBar.title.text = @"设置地区";
64 [self textField_layoutSubViews]; 69 [self textField_layoutSubViews];
65 self.textField.placeholder = @"请输入你所在的地区"; 70 self.textField.placeholder = @"请输入你所在的地区";
66 71
@@ -68,7 +73,7 @@ static const NSInteger margin = 15; @@ -68,7 +73,7 @@ static const NSInteger margin = 15;
68 break; 73 break;
69 case CNLiveUserInfoDataTypeIntroduction: 74 case CNLiveUserInfoDataTypeIntroduction:
70 { 75 {
71 - self.title = @"设置个性签名"; 76 + self.navigationBar.title.text = @"设置个性签名";
72 [self textView_layoutSubViews]; 77 [self textView_layoutSubViews];
73 } 78 }
74 break; 79 break;
@@ -86,22 +91,7 @@ static const NSInteger margin = 15; @@ -86,22 +91,7 @@ static const NSInteger margin = 15;
86 91
87 92
88 } 93 }
89 -- (void)createNavigationbar{  
90 - UIButton *rightBtn = [UIButton buttonWithType:UIButtonTypeCustom];  
91 - rightBtn.frame = CGRectMake(0, 0, 50, 25);  
92 - rightBtn.backgroundColor = [UIColor lightGrayColor];  
93 - rightBtn.userInteractionEnabled = NO;  
94 - rightBtn.titleLabel.font = [UIFont boldSystemFontOfSize:14];  
95 - [rightBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];  
96 - [rightBtn setTitle:@"完成" forState:UIControlStateNormal];  
97 - rightBtn.adjustsImageWhenHighlighted = NO;  
98 - [rightBtn addTarget:self action:@selector(rightDidClicked:) forControlEvents:UIControlEventTouchUpInside];  
99 - rightBtn.layer.masksToBounds = YES;  
100 - rightBtn.layer.cornerRadius = 5;  
101 - self.rightBtn = rightBtn;  
102 - UIBarButtonItem *rightItem = [[UIBarButtonItem alloc]initWithCustomView:rightBtn];  
103 - self.navigationItem.rightBarButtonItem = rightItem;  
104 -} 94 +
105 - (void)textField_layoutSubViews { 95 - (void)textField_layoutSubViews {
106 UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(0, NavigationContentTop, SCREEN_WIDTH, 50)]; 96 UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(0, NavigationContentTop, SCREEN_WIDTH, 50)];
107 bgView.backgroundColor = [UIColor whiteColor]; 97 bgView.backgroundColor = [UIColor whiteColor];
@@ -137,8 +127,8 @@ static const NSInteger margin = 15; @@ -137,8 +127,8 @@ static const NSInteger margin = 15;
137 127
138 #pragma mark - UITextFieldDelegate 128 #pragma mark - UITextFieldDelegate
139 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 129 - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
140 - self.rightBtn.backgroundColor = [UIColor colorWithRed:35/255.0 green:212/255.0 blue:30/255.0 alpha:1.0];  
141 - self.rightBtn.userInteractionEnabled = YES; 130 + self.navigationBar.right.backgroundColor = [UIColor colorWithRed:35/255.0 green:212/255.0 blue:30/255.0 alpha:1.0];
  131 + self.navigationBar.right.userInteractionEnabled = YES;
142 return YES; 132 return YES;
143 } 133 }
144 - (void)textFieldDidBeginEditing:(UITextField *)textField{ 134 - (void)textFieldDidBeginEditing:(UITextField *)textField{
@@ -153,8 +143,8 @@ static const NSInteger margin = 15; @@ -153,8 +143,8 @@ static const NSInteger margin = 15;
153 } 143 }
154 #pragma mark - UITextViewDelegate 144 #pragma mark - UITextViewDelegate
155 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView{ 145 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView{
156 - self.rightBtn.backgroundColor = [UIColor colorWithRed:35/255.0 green:212/255.0 blue:30/255.0 alpha:1.0];  
157 - self.rightBtn.userInteractionEnabled = YES; 146 + self.navigationBar.right.backgroundColor = [UIColor colorWithRed:35/255.0 green:212/255.0 blue:30/255.0 alpha:1.0];
  147 + self.navigationBar.right.userInteractionEnabled = YES;
158 return YES; 148 return YES;
159 } 149 }
160 - (BOOL)textViewShouldEndEditing:(UITextView *)textView{ 150 - (BOOL)textViewShouldEndEditing:(UITextView *)textView{
@@ -179,7 +169,6 @@ static const NSInteger margin = 15; @@ -179,7 +169,6 @@ static const NSInteger margin = 15;
179 - (void)goBack { 169 - (void)goBack {
180 if (self.presentingViewController != nil) { 170 if (self.presentingViewController != nil) {
181 [self dismissViewControllerAnimated:YES completion:nil]; 171 [self dismissViewControllerAnimated:YES completion:nil];
182 -  
183 } 172 }
184 else { 173 else {
185 [self.navigationController popViewControllerAnimated:YES]; 174 [self.navigationController popViewControllerAnimated:YES];
@@ -188,25 +177,6 @@ static const NSInteger margin = 15; @@ -188,25 +177,6 @@ static const NSInteger margin = 15;
188 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { 177 - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
189 [self.view endEditing:YES]; 178 [self.view endEditing:YES];
190 } 179 }
191 -- (void)rightDidClicked:(UIButton *)btn{  
192 - switch (self.model.dataType) {  
193 - case CNLiveUserInfoDataTypeNickname://昵称  
194 - case CNLiveUserInfoDataTypeAddress://地区  
195 - {  
196 - [self requestUpdateUserInfo:self.textField.text];  
197 - }  
198 - break;  
199 - case CNLiveUserInfoDataTypeIntroduction://简介  
200 - {  
201 - [self requestUpdateUserInfo:self.textView.text];  
202 - }  
203 - break;  
204 -  
205 - default:  
206 - break;  
207 - }  
208 -  
209 -}  
210 180
211 #pragma mark - 私有方法 181 #pragma mark - 私有方法
212 - (void)requestUpdateUserInfo:(NSString *)info{ 182 - (void)requestUpdateUserInfo:(NSString *)info{
@@ -248,4 +218,46 @@ static const NSInteger margin = 15; @@ -248,4 +218,46 @@ static const NSInteger margin = 15;
248 218
249 } 219 }
250 220
  221 +- (void)navigationBar:(CNLiveUserInfoNavigationBar *)navigationBar actionEvents:(NSString *)actionEvents{
  222 + if ([actionEvents isEqualToString:@"1"]) {
  223 + [self goBack];
  224 + }else if ([actionEvents isEqualToString:@"2"]){
  225 + switch (self.model.dataType) {
  226 + case CNLiveUserInfoDataTypeNickname://昵称
  227 + case CNLiveUserInfoDataTypeAddress://地区
  228 + {
  229 + [self requestUpdateUserInfo:self.textField.text];
  230 + }
  231 + break;
  232 + case CNLiveUserInfoDataTypeIntroduction://简介
  233 + {
  234 + [self requestUpdateUserInfo:self.textView.text];
  235 + }
  236 + break;
  237 +
  238 + default:
  239 + break;
  240 + }
  241 + }
  242 +}
  243 +#pragma mark - 懒加载
  244 +- (CNLiveUserInfoNavigationBar *)navigationBar {
  245 + if (!_navigationBar) {
  246 + _navigationBar = [[CNLiveUserInfoNavigationBar alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, NavigationContentTop)];
  247 + _navigationBar.delegate = self;
  248 + _navigationBar.title.text = @"个人资料";
  249 + _navigationBar.right.frame = CGRectMake(SCREEN_WIDTH-44-15, StatusBarHeight+10, 44, 24);
  250 + [_navigationBar.right setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
  251 + _navigationBar.right.backgroundColor = [UIColor lightGrayColor];
  252 + _navigationBar.right.userInteractionEnabled = NO;
  253 + _navigationBar.right.titleLabel.font = [UIFont boldSystemFontOfSize:14];
  254 + [_navigationBar.right setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  255 + [_navigationBar.right setTitle:@"完成" forState:UIControlStateNormal];
  256 + _navigationBar.right.adjustsImageWhenHighlighted = NO;
  257 + _navigationBar.right.layer.masksToBounds = YES;
  258 + _navigationBar.right.layer.cornerRadius = 5;
  259 + }
  260 + return _navigationBar;
  261 +}
  262 +
251 @end 263 @end
CNLiveMineModule/Classes/UserInfo/CNLiveUserInfoController.m
@@ -15,10 +15,12 @@ @@ -15,10 +15,12 @@
15 #import "CNLiveInfoUpdateController.h" 15 #import "CNLiveInfoUpdateController.h"
16 #import "CNLiveUserInfoNotification.h" 16 #import "CNLiveUserInfoNotification.h"
17 #import "CNLiveMyQrCodeController.h" 17 #import "CNLiveMyQrCodeController.h"
  18 +#import "CNLiveUserInfoNavigationBar.h"
18 19
19 -@interface CNLiveUserInfoController ()<UITableViewDelegate, UITableViewDataSource, CNLiveInfoUpdateDelegate>{ 20 +@interface CNLiveUserInfoController ()<UITableViewDelegate, UITableViewDataSource, CNLiveInfoUpdateDelegate, CNLiveUserInfoNavigationBarDelegate>{
20 UIImage *_image; 21 UIImage *_image;
21 } 22 }
  23 +@property (nonatomic, strong) CNLiveUserInfoNavigationBar *navigationBar;
22 @property (nonatomic, strong) UITableView *tableView; 24 @property (nonatomic, strong) UITableView *tableView;
23 @property (nonatomic, strong) NSMutableArray *data; 25 @property (nonatomic, strong) NSMutableArray *data;
24 26
@@ -89,7 +91,7 @@ @@ -89,7 +91,7 @@
89 #pragma mark - 生命周期 91 #pragma mark - 生命周期
90 - (void)viewWillAppear:(BOOL)animated{ 92 - (void)viewWillAppear:(BOOL)animated{
91 [super viewWillAppear:animated]; 93 [super viewWillAppear:animated];
92 - self.navigationController.navigationBarHidden = NO; 94 + self.navigationController.navigationBarHidden = YES;
93 } 95 }
94 96
95 - (void)viewDidLoad { 97 - (void)viewDidLoad {
@@ -112,7 +114,7 @@ @@ -112,7 +114,7 @@
112 } 114 }
113 115
114 - (void)createSubViews { 116 - (void)createSubViews {
115 - self.title = @"个人资料"; 117 + [self.view addSubview:self.navigationBar];
116 [self.view addSubview:self.tableView]; 118 [self.view addSubview:self.tableView];
117 119
118 } 120 }
@@ -188,6 +190,11 @@ @@ -188,6 +190,11 @@
188 [self updateDataType:dataType info:info]; 190 [self updateDataType:dataType info:info];
189 } 191 }
190 192
  193 +- (void)navigationBar:(CNLiveUserInfoNavigationBar *)navigationBar actionEvents:(NSString *)actionEvents{
  194 + if ([actionEvents isEqualToString:@"1"]) {
  195 + [self goBack];
  196 + }
  197 +}
191 #pragma mark - 私有方法 198 #pragma mark - 私有方法
192 // 修改头像 199 // 修改头像
193 - (void)updateHeaderActionSheetView{ 200 - (void)updateHeaderActionSheetView{
@@ -226,6 +233,16 @@ @@ -226,6 +233,16 @@
226 } 233 }
227 234
228 #pragma mark - 懒加载 235 #pragma mark - 懒加载
  236 +- (CNLiveUserInfoNavigationBar *)navigationBar {
  237 + if (!_navigationBar) {
  238 + _navigationBar = [[CNLiveUserInfoNavigationBar alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, NavigationContentTop)];
  239 + _navigationBar.delegate = self;
  240 + _navigationBar.title.text = @"个人资料";
  241 + _navigationBar.right = nil;
  242 + }
  243 + return _navigationBar;
  244 +}
  245 +
229 - (NSMutableArray *)data { 246 - (NSMutableArray *)data {
230 if (!_data) { 247 if (!_data) {
231 _data = [NSMutableArray array]; 248 _data = [NSMutableArray array];
CNLiveMineModule/Classes/UserInfo/CNLiveUserInfoNavigationBar.h 0 → 100644
  1 +//
  2 +// CNLiveUserInfoNavigationBar.m
  3 +// CNLiveMineModule
  4 +//
  5 +// Created by 153993236@qq.com on 11/12/2019.
  6 +// Copyright (c) 2019 153993236@qq.com. All rights reserved.
  7 +//
  8 +
  9 +#import <UIKit/UIKit.h>
  10 +
  11 +NS_ASSUME_NONNULL_BEGIN
  12 +@class CNLiveUserInfoNavigationBar;
  13 +
  14 +@protocol CNLiveUserInfoNavigationBarDelegate <NSObject>
  15 +- (void)navigationBar:(CNLiveUserInfoNavigationBar *)navigationBar actionEvents:(NSString *)actionEvents;
  16 +
  17 +@end
  18 +
  19 +@interface CNLiveUserInfoNavigationBar : UIView
  20 +@property (nonatomic, weak) id<CNLiveUserInfoNavigationBarDelegate> delegate;
  21 +@property (nonatomic, strong) UIView *navView;
  22 +@property (nonatomic, strong) UIButton *left;
  23 +@property (nonatomic, strong) UILabel *title;
  24 +@property (nonatomic, strong, nullable) UIButton *right;
  25 +
  26 +
  27 +@end
  28 +
  29 +NS_ASSUME_NONNULL_END
CNLiveMineModule/Classes/UserInfo/CNLiveUserInfoNavigationBar.m 0 → 100644
  1 +//
  2 +// CNLiveUserInfoNavigationBar.m
  3 +// CNLiveQrCodeModule
  4 +//
  5 +// Created by 153993236@qq.com on 11/12/2019.
  6 +// Copyright © 2019 153993236@qq.com. All rights reserved.
  7 +//
  8 +
  9 +#import "CNLiveUserInfoNavigationBar.h"
  10 +#import "QMUIKit.h"
  11 +
  12 +@interface CNLiveUserInfoNavigationBar ()
  13 +
  14 +@end
  15 +
  16 +@implementation CNLiveUserInfoNavigationBar
  17 +static const NSInteger margin = 15;
  18 +
  19 +- (instancetype)initWithFrame:(CGRect)frame{
  20 + self = [super initWithFrame:frame];
  21 + if(self){
  22 + self.userInteractionEnabled = YES;
  23 + self.backgroundColor = [UIColor clearColor];
  24 + [self createSubViews];
  25 + }
  26 + return self;
  27 +}
  28 +
  29 +- (void)dealloc {
  30 + NSLog(@"CNLiveUserInfoNavigationBar -- dealloc");
  31 +}
  32 +
  33 +- (void)createSubViews {
  34 + [self addSubview:self.navView];
  35 + [self addSubview:self.left];
  36 + [self addSubview:self.title];
  37 + [self addSubview:self.right];
  38 +}
  39 +
  40 +/*
  41 + // Only override drawRect: if you perform custom drawing.
  42 + // An empty implementation adversely affects performance during animation.
  43 + - (void)drawRect:(CGRect)rect {
  44 + // Drawing code
  45 + }
  46 + */
  47 +
  48 +#pragma mark - 懒加载
  49 +- (UIView *)navView {
  50 + if (!_navView) {
  51 + _navView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, NavigationContentTop)];
  52 + _navView.backgroundColor = [UIColor clearColor];
  53 + }
  54 + return _navView;
  55 +}
  56 +
  57 +- (UIButton *)left {
  58 + if (!_left) {
  59 + _left= [UIButton buttonWithType:UIButtonTypeCustom];
  60 + _left.adjustsImageWhenHighlighted = NO;
  61 + _left.frame = CGRectMake(margin, StatusBarHeight, NavigationBarHeight, NavigationBarHeight);
  62 + UIImage *image = [self xw_getImageName:@"mine_back_black_b" bundleName:@"CNLiveMineModule" targetClass:[CNLiveUserInfoNavigationBar class]];
  63 + [_left setImage:[image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
  64 + [_left setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
  65 + [_left addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
  66 + }
  67 + return _left;
  68 +}
  69 +
  70 +- (UILabel *)title {
  71 + if (!_title) {
  72 + _title = [[UILabel alloc] initWithFrame:CGRectMake(margin+NavigationBarHeight, StatusBarHeight, SCREEN_WIDTH-2*(margin+NavigationBarHeight), NavigationBarHeight)];
  73 + [_title setFont:[UIFont systemFontOfSize:18]];
  74 + _title.textColor = [UIColor blackColor];
  75 + _title.textAlignment = NSTextAlignmentCenter;
  76 + }
  77 + return _title;
  78 +}
  79 +
  80 +- (UIButton *)right {
  81 + if (!_right) {
  82 + _right = [UIButton buttonWithType:UIButtonTypeCustom];
  83 + _right.frame = CGRectMake(SCREEN_WIDTH-50-margin, StatusBarHeight, 50, NavigationBarHeight);
  84 + [_right setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight];
  85 + _right.adjustsImageWhenHighlighted = NO;
  86 + _right.titleLabel.font = [UIFont systemFontOfSize:15];
  87 + [_right setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  88 + [_right addTarget:self action:@selector(rightDidClicked:) forControlEvents:UIControlEventTouchUpInside];
  89 + }
  90 + return _right;
  91 +}
  92 +
  93 +#pragma mark - 响应方法
  94 +- (void)goBack{
  95 + if (self.delegate && [self.delegate respondsToSelector:@selector(navigationBar:actionEvents:)]) {
  96 + [self.delegate navigationBar:self actionEvents:@"1"];
  97 + }
  98 +}
  99 +- (void)rightDidClicked:(UIButton *)btn{
  100 + if (self.delegate && [self.delegate respondsToSelector:@selector(navigationBar:actionEvents:)]) {
  101 + [self.delegate navigationBar:self actionEvents:@"2"];
  102 + }
  103 +}
  104 +
  105 +/**
  106 + * 创建图片
  107 + *
  108 + * @param imageName 图片名字
  109 + * @param bundleName 图片所在的bundle名字
  110 + * @param targetClass 类和bundle的同级目录
  111 + * @return 返回UIImage
  112 + */
  113 +- (UIImage *)xw_getImageName:(NSString *)imageName bundleName:(NSString *)bundleName targetClass:(Class)targetClass{
  114 + NSBundle *bundle = [NSBundle bundleForClass:targetClass];
  115 + NSURL *url = [bundle URLForResource:bundleName withExtension:@"bundle"];
  116 + NSBundle *targetBundle = [NSBundle bundleWithURL:url];
  117 + UIImage *image = [UIImage imageNamed:imageName inBundle:targetBundle compatibleWithTraitCollection:nil];
  118 + return image?image:[UIImage imageNamed:imageName inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil];
  119 +
  120 +}
  121 +
  122 +@end