Commit b19ee7ec2ec6a987d6e4be1197a46ebdf4ec93b9
1 parent
c2cfe8c4
no message
Showing
7 changed files
with
251 additions
and
49 deletions
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 |