Commit 8d9549d34f7f2557e5e4c697edf7408a91e25e50
1 parent
548ae3d9
no message
Showing
9 changed files
with
61 additions
and
330 deletions
CNLiveLoginModule.podspec
| @@ -113,6 +113,9 @@ TODO: 网家家-登录模块. | @@ -113,6 +113,9 @@ TODO: 网家家-登录模块. | ||
| 113 | 113 | ||
| 114 | # 类别 | 114 | # 类别 |
| 115 | s.dependency 'CNLiveCategory' | 115 | s.dependency 'CNLiveCategory' |
| 116 | + | ||
| 117 | + # 自定义控件 | ||
| 118 | + s.dependency 'CNLiveCustomControl' | ||
| 116 | 119 | ||
| 117 | s.static_framework = true | 120 | s.static_framework = true |
| 118 | 121 |
CNLiveLoginModule/Classes/Controller/CNLiveCompleteInfoController.m
| @@ -12,12 +12,12 @@ | @@ -12,12 +12,12 @@ | ||
| 12 | #import "QMUIKit.h" | 12 | #import "QMUIKit.h" |
| 13 | #import "YYKit.h" | 13 | #import "YYKit.h" |
| 14 | 14 | ||
| 15 | -#import "CNLiveLoginNavigationBar.h" | 15 | +#import "CNLiveNavigationBar.h" |
| 16 | #import "CNLiveCompleteInfoView.h" | 16 | #import "CNLiveCompleteInfoView.h" |
| 17 | 17 | ||
| 18 | -@interface CNLiveCompleteInfoController()<CNLiveCompleteInfoViewDelegate,CNLiveLoginNavigationBarDelegate> | 18 | +@interface CNLiveCompleteInfoController()<CNLiveCompleteInfoViewDelegate> |
| 19 | @property (nonatomic, strong) CNLiveCompleteInfoView *infoView; | 19 | @property (nonatomic, strong) CNLiveCompleteInfoView *infoView; |
| 20 | -@property (nonatomic, strong) CNLiveLoginNavigationBar *navigationBar; | 20 | +@property (nonatomic, strong) CNLiveNavigationBar *navigationBar; |
| 21 | 21 | ||
| 22 | @end | 22 | @end |
| 23 | 23 | ||
| @@ -64,12 +64,15 @@ | @@ -64,12 +64,15 @@ | ||
| 64 | */ | 64 | */ |
| 65 | 65 | ||
| 66 | #pragma mark - 懒加载 | 66 | #pragma mark - 懒加载 |
| 67 | -- (CNLiveLoginNavigationBar *)navigationBar { | 67 | +- (CNLiveNavigationBar *)navigationBar { |
| 68 | if (!_navigationBar) { | 68 | if (!_navigationBar) { |
| 69 | - _navigationBar = [[CNLiveLoginNavigationBar alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, NavigationContentTop)]; | 69 | + _navigationBar = [CNLiveNavigationBar navigationBar]; |
| 70 | _navigationBar.backgroundColor = [UIColor whiteColor]; | 70 | _navigationBar.backgroundColor = [UIColor whiteColor]; |
| 71 | - _navigationBar.delegate = self; | ||
| 72 | _navigationBar.title.text = @"完善信息"; | 71 | _navigationBar.title.text = @"完善信息"; |
| 72 | + __weak typeof(self) weakSelf = self; | ||
| 73 | + _navigationBar.onClickLeftButton = ^{ | ||
| 74 | + [weakSelf.navigationController popViewControllerAnimated:YES]; | ||
| 75 | + }; | ||
| 73 | _navigationBar.right = nil; | 76 | _navigationBar.right = nil; |
| 74 | } | 77 | } |
| 75 | return _navigationBar; | 78 | return _navigationBar; |
| @@ -84,18 +87,4 @@ | @@ -84,18 +87,4 @@ | ||
| 84 | return _infoView; | 87 | return _infoView; |
| 85 | } | 88 | } |
| 86 | 89 | ||
| 87 | -#pragma mark - CNLiveLoginNavigationBarDelegate | ||
| 88 | -- (void)navigationBar:(CNLiveLoginNavigationBar *)navigationBar actionEvents:(NSString *)actionEvents{ | ||
| 89 | - if ([actionEvents isEqualToString:@"1"]) { | ||
| 90 | - if (self.navigationController.topViewController == self) { | ||
| 91 | - [self.navigationController popViewControllerAnimated:YES]; | ||
| 92 | - }else{ | ||
| 93 | - [self dismissViewControllerAnimated:YES completion:nil]; | ||
| 94 | - } | ||
| 95 | - | ||
| 96 | - }else if ([actionEvents isEqualToString:@"2"]){ | ||
| 97 | - | ||
| 98 | - } | ||
| 99 | -} | ||
| 100 | - | ||
| 101 | @end | 90 | @end |
CNLiveLoginModule/Classes/Controller/CNLiveLoginController.m
| @@ -94,7 +94,6 @@ | @@ -94,7 +94,6 @@ | ||
| 94 | - (void)loginSuccess:(CNLiveLoginView *)view isNewUser:(BOOL)isNewUser result:(id _Nonnull)result{ | 94 | - (void)loginSuccess:(CNLiveLoginView *)view isNewUser:(BOOL)isNewUser result:(id _Nonnull)result{ |
| 95 | if (isNewUser) { | 95 | if (isNewUser) { |
| 96 | // 新用户 -> 设置昵称和头像 | 96 | // 新用户 -> 设置昵称和头像 |
| 97 | -// [OpenInstallSDK reportRegister]; | ||
| 98 | CNLiveCompleteInfoController *vc = [[CNLiveCompleteInfoController alloc]init]; | 97 | CNLiveCompleteInfoController *vc = [[CNLiveCompleteInfoController alloc]init]; |
| 99 | vc.hidesBottomBarWhenPushed = YES; | 98 | vc.hidesBottomBarWhenPushed = YES; |
| 100 | [self.navigationController pushViewController:vc animated:YES]; | 99 | [self.navigationController pushViewController:vc animated:YES]; |
| @@ -150,7 +149,7 @@ | @@ -150,7 +149,7 @@ | ||
| 150 | - (UIButton *)close{ | 149 | - (UIButton *)close{ |
| 151 | if (!_close) { | 150 | if (!_close) { |
| 152 | _close = [UIButton buttonWithType:UIButtonTypeCustom]; | 151 | _close = [UIButton buttonWithType:UIButtonTypeCustom]; |
| 153 | - _close.frame = CGRectMake(SCREEN_WIDTH-44-10, StatusBarHeight, 44, 44); | 152 | + _close.frame = CGRectMake(SCREEN_WIDTH-NavigationBarHeight-10, StatusBarHeight, NavigationBarHeight, NavigationBarHeight); |
| 154 | _close.hidden = !self.isShowClose; | 153 | _close.hidden = !self.isShowClose; |
| 155 | UIImage *image = [self getImageWithImageName:@"login_close" bundleName:@"CNLiveLoginModule" targetClass:[self class]]; | 154 | UIImage *image = [self getImageWithImageName:@"login_close" bundleName:@"CNLiveLoginModule" targetClass:[self class]]; |
| 156 | [_close setImage:image forState:UIControlStateNormal]; | 155 | [_close setImage:image forState:UIControlStateNormal]; |
CNLiveLoginModule/Classes/ThreeLogin/CNLiveBindingTelController.m
| @@ -12,12 +12,12 @@ | @@ -12,12 +12,12 @@ | ||
| 12 | #import "NSAttributedString+YYText.h" | 12 | #import "NSAttributedString+YYText.h" |
| 13 | #import "QMUIKit.h" | 13 | #import "QMUIKit.h" |
| 14 | 14 | ||
| 15 | -#import "CNLiveLoginNavigationBar.h" | 15 | +#import "CNLiveNavigationBar.h" |
| 16 | #import "CNLiveBindingTelView.h" | 16 | #import "CNLiveBindingTelView.h" |
| 17 | 17 | ||
| 18 | -@interface CNLiveBindingTelController()<CNLiveBindingTelViewDelegate, CNLiveLoginNavigationBarDelegate> | 18 | +@interface CNLiveBindingTelController()<CNLiveBindingTelViewDelegate> |
| 19 | @property (nonatomic, assign) CNLiveThreeLoginType type; | 19 | @property (nonatomic, assign) CNLiveThreeLoginType type; |
| 20 | -@property (nonatomic, strong) CNLiveLoginNavigationBar *navigationBar; | 20 | +@property (nonatomic, strong) CNLiveNavigationBar *navigationBar; |
| 21 | 21 | ||
| 22 | @property (nonatomic, strong) CNLiveBindingTelView *bindingTelView; | 22 | @property (nonatomic, strong) CNLiveBindingTelView *bindingTelView; |
| 23 | @property (nonatomic, strong) YYLabel *protocol; | 23 | @property (nonatomic, strong) YYLabel *protocol; |
| @@ -63,19 +63,6 @@ | @@ -63,19 +63,6 @@ | ||
| 63 | - (void)bindingSuccess:(CNLiveBindingTelView *)view type:(CNLiveThreeLoginType)type{ | 63 | - (void)bindingSuccess:(CNLiveBindingTelView *)view type:(CNLiveThreeLoginType)type{ |
| 64 | 64 | ||
| 65 | } | 65 | } |
| 66 | -#pragma mark - CNLiveLoginNavigationBarDelegate | ||
| 67 | -- (void)navigationBar:(CNLiveLoginNavigationBar *)navigationBar actionEvents:(NSString *)actionEvents{ | ||
| 68 | - if ([actionEvents isEqualToString:@"1"]) { | ||
| 69 | - if (self.navigationController.topViewController == self) { | ||
| 70 | - [self.navigationController popViewControllerAnimated:YES]; | ||
| 71 | - }else{ | ||
| 72 | - [self dismissViewControllerAnimated:YES completion:nil]; | ||
| 73 | - } | ||
| 74 | - | ||
| 75 | - }else if ([actionEvents isEqualToString:@"2"]){ | ||
| 76 | - | ||
| 77 | - } | ||
| 78 | -} | ||
| 79 | 66 | ||
| 80 | /* | 67 | /* |
| 81 | #pragma mark - Navigation | 68 | #pragma mark - Navigation |
| @@ -87,12 +74,15 @@ | @@ -87,12 +74,15 @@ | ||
| 87 | } | 74 | } |
| 88 | */ | 75 | */ |
| 89 | #pragma mark - 懒加载 | 76 | #pragma mark - 懒加载 |
| 90 | -- (CNLiveLoginNavigationBar *)navigationBar { | 77 | +- (CNLiveNavigationBar *)navigationBar { |
| 91 | if (!_navigationBar) { | 78 | if (!_navigationBar) { |
| 92 | - _navigationBar = [[CNLiveLoginNavigationBar alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, NavigationContentTop)]; | 79 | + _navigationBar = [CNLiveNavigationBar navigationBar]; |
| 93 | _navigationBar.backgroundColor = [UIColor whiteColor]; | 80 | _navigationBar.backgroundColor = [UIColor whiteColor]; |
| 94 | - _navigationBar.delegate = self; | ||
| 95 | _navigationBar.title.text = @"绑定手机号"; | 81 | _navigationBar.title.text = @"绑定手机号"; |
| 82 | + __weak typeof(self) weakSelf = self; | ||
| 83 | + _navigationBar.onClickLeftButton = ^{ | ||
| 84 | + [weakSelf.navigationController popViewControllerAnimated:YES]; | ||
| 85 | + }; | ||
| 96 | _navigationBar.right = nil; | 86 | _navigationBar.right = nil; |
| 97 | } | 87 | } |
| 98 | return _navigationBar; | 88 | return _navigationBar; |
CNLiveLoginModule/Classes/View/CNLiveCountDownButton.h deleted
100644 → 0
| 1 | -// | ||
| 2 | -// XWCountDownButton.h | ||
| 3 | -// CNLiveLoginModule | ||
| 4 | -// | ||
| 5 | -// Created by 153993236@qq.com on 11/12/2019. | ||
| 6 | -// Copyright (c) 2019 153993236@qq.com. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -/** | ||
| 10 | - * 倒计时按钮 | ||
| 11 | - */ | ||
| 12 | -#import <UIKit/UIKit.h> | ||
| 13 | - | ||
| 14 | -NS_ASSUME_NONNULL_BEGIN | ||
| 15 | - | ||
| 16 | -@class CNLiveCountDownButton; | ||
| 17 | - | ||
| 18 | -@protocol CNLiveCountDownButtonDataSource <NSObject> | ||
| 19 | -// 设置起始倒计时秒数 | ||
| 20 | -- (NSInteger)startCountDownNumOfCountDownButton:(CNLiveCountDownButton *)button; | ||
| 21 | - | ||
| 22 | -@end | ||
| 23 | - | ||
| 24 | -@protocol CNLiveCountDownButtonDelegate <NSObject> | ||
| 25 | -// 倒计时按钮点击时回调 | ||
| 26 | -- (void)countDownButtonDidClick:(CNLiveCountDownButton *)button; | ||
| 27 | -// 倒计时进行中的回调 | ||
| 28 | -- (void)countDownButtonDidCountDown:(CNLiveCountDownButton *)button countDownNum:(NSInteger)countDownNum; | ||
| 29 | -// 倒计时结束时的回调 | ||
| 30 | -- (void)countDownButtonDidEndCountDown:(CNLiveCountDownButton *)button; | ||
| 31 | - | ||
| 32 | -@end | ||
| 33 | - | ||
| 34 | -@interface CNLiveCountDownButton : UIButton | ||
| 35 | - | ||
| 36 | -@property (nonatomic, weak) id <CNLiveCountDownButtonDataSource> dataSource; | ||
| 37 | -@property (nonatomic, weak) id <CNLiveCountDownButtonDelegate> delegate; | ||
| 38 | - | ||
| 39 | -/** 开始倒计时 */ | ||
| 40 | -- (void)startCountDown; | ||
| 41 | -/** 释放timer */ | ||
| 42 | -- (void)releaseTimer; | ||
| 43 | - | ||
| 44 | -@end | ||
| 45 | - | ||
| 46 | -NS_ASSUME_NONNULL_END |
CNLiveLoginModule/Classes/View/CNLiveCountDownButton.m deleted
100644 → 0
| 1 | -// | ||
| 2 | -// CNLiveCountDownButton.m | ||
| 3 | -// CNLiveLoginModule | ||
| 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 "CNLiveCountDownButton.h" | ||
| 10 | -@interface CNLiveCountDownButton() | ||
| 11 | -@property (nonatomic, strong) NSTimer *timer; | ||
| 12 | - | ||
| 13 | -@end | ||
| 14 | - | ||
| 15 | -@implementation CNLiveCountDownButton{ | ||
| 16 | - // 剩余倒计时 | ||
| 17 | - NSInteger _countDownNum; | ||
| 18 | -} | ||
| 19 | - | ||
| 20 | -- (instancetype)initWithFrame:(CGRect)frame { | ||
| 21 | - if (self = [super initWithFrame:frame]) { | ||
| 22 | - [self addTarget:self action:@selector(onClick) forControlEvents:UIControlEventTouchUpInside]; | ||
| 23 | - } | ||
| 24 | - return self; | ||
| 25 | -} | ||
| 26 | - | ||
| 27 | -// 按钮点击 | ||
| 28 | -- (void)onClick { | ||
| 29 | - if ([self.dataSource respondsToSelector:@selector(startCountDownNumOfCountDownButton:)]) { | ||
| 30 | - _countDownNum = [self.dataSource startCountDownNumOfCountDownButton:self]; | ||
| 31 | - } | ||
| 32 | - if ([self.delegate respondsToSelector:@selector(countDownButtonDidClick:)]) { | ||
| 33 | - [self.delegate countDownButtonDidClick:self]; | ||
| 34 | - } | ||
| 35 | -} | ||
| 36 | - | ||
| 37 | -// 开始倒计时 | ||
| 38 | -- (void)startCountDown { | ||
| 39 | - if (self.timer) { | ||
| 40 | - [self releaseTimer]; | ||
| 41 | - } | ||
| 42 | - | ||
| 43 | - self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(refreshButton) userInfo:nil repeats:YES]; | ||
| 44 | - [[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes]; | ||
| 45 | -} | ||
| 46 | - | ||
| 47 | -// 刷新按钮 | ||
| 48 | -- (void)refreshButton { | ||
| 49 | - _countDownNum --; | ||
| 50 | - | ||
| 51 | - if ([self.delegate respondsToSelector:@selector(countDownButtonDidCountDown:countDownNum:)]) { | ||
| 52 | - [self.delegate countDownButtonDidCountDown:self countDownNum:_countDownNum]; | ||
| 53 | - } | ||
| 54 | - | ||
| 55 | - if (_countDownNum == 0) { | ||
| 56 | - [self releaseTimer]; | ||
| 57 | - if ([self.delegate respondsToSelector:@selector(countDownButtonDidEndCountDown:)]) { | ||
| 58 | - [self.delegate countDownButtonDidEndCountDown:self]; | ||
| 59 | - } | ||
| 60 | - } | ||
| 61 | -} | ||
| 62 | - | ||
| 63 | -- (void)releaseTimer { | ||
| 64 | - if (self.timer) { | ||
| 65 | - [self.timer invalidate]; | ||
| 66 | - self.timer = nil; | ||
| 67 | - } | ||
| 68 | -} | ||
| 69 | - | ||
| 70 | -- (void)dealloc { | ||
| 71 | - NSLog(@"倒计时按钮已释放"); | ||
| 72 | -} | ||
| 73 | - | ||
| 74 | -@end |
CNLiveLoginModule/Classes/View/CNLiveLoginNavigationBar.h deleted
100644 → 0
| 1 | -// | ||
| 2 | -// CNLiveLoginNavigationBar.m | ||
| 3 | -// CNLiveLoginModule | ||
| 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 CNLiveLoginNavigationBar; | ||
| 13 | - | ||
| 14 | -@protocol CNLiveLoginNavigationBarDelegate <NSObject> | ||
| 15 | -- (void)navigationBar:(CNLiveLoginNavigationBar *)navigationBar actionEvents:(NSString *)actionEvents; | ||
| 16 | - | ||
| 17 | -@end | ||
| 18 | - | ||
| 19 | -@interface CNLiveLoginNavigationBar : UIView | ||
| 20 | -@property (nonatomic, weak) id<CNLiveLoginNavigationBarDelegate> 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 |
CNLiveLoginModule/Classes/View/CNLiveLoginNavigationBar.m deleted
100644 → 0
| 1 | -// | ||
| 2 | -// CNLiveLoginNavigationBar.m | ||
| 3 | -// CNLiveLoginModule | ||
| 4 | -// | ||
| 5 | -// Created by 153993236@qq.com on 11/12/2019. | ||
| 6 | -// Copyright © 2019 153993236@qq.com. All rights reserved. | ||
| 7 | -// | ||
| 8 | - | ||
| 9 | -#import "CNLiveLoginNavigationBar.h" | ||
| 10 | -#import "QMUIKit.h" | ||
| 11 | -#import "CNLiveCategory.h" | ||
| 12 | - | ||
| 13 | -@interface CNLiveLoginNavigationBar () | ||
| 14 | - | ||
| 15 | -@end | ||
| 16 | - | ||
| 17 | -@implementation CNLiveLoginNavigationBar | ||
| 18 | -static const NSInteger margin = 15; | ||
| 19 | - | ||
| 20 | -- (instancetype)initWithFrame:(CGRect)frame{ | ||
| 21 | - self = [super initWithFrame:frame]; | ||
| 22 | - if(self){ | ||
| 23 | - self.userInteractionEnabled = YES; | ||
| 24 | - self.backgroundColor = [UIColor clearColor]; | ||
| 25 | - [self createSubViews]; | ||
| 26 | - } | ||
| 27 | - return self; | ||
| 28 | -} | ||
| 29 | - | ||
| 30 | -- (void)dealloc { | ||
| 31 | - NSLog(@"CNLiveSettingNavigationBar -- dealloc"); | ||
| 32 | -} | ||
| 33 | - | ||
| 34 | -- (void)createSubViews { | ||
| 35 | - [self addSubview:self.navView]; | ||
| 36 | - [self addSubview:self.left]; | ||
| 37 | - [self addSubview:self.title]; | ||
| 38 | - [self addSubview:self.right]; | ||
| 39 | -} | ||
| 40 | - | ||
| 41 | -/* | ||
| 42 | - // Only override drawRect: if you perform custom drawing. | ||
| 43 | - // An empty implementation adversely affects performance during animation. | ||
| 44 | - - (void)drawRect:(CGRect)rect { | ||
| 45 | - // Drawing code | ||
| 46 | - } | ||
| 47 | - */ | ||
| 48 | - | ||
| 49 | -#pragma mark - 懒加载 | ||
| 50 | -- (UIView *)navView { | ||
| 51 | - if (!_navView) { | ||
| 52 | - _navView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, NavigationContentTop)]; | ||
| 53 | - _navView.backgroundColor = [UIColor clearColor]; | ||
| 54 | - } | ||
| 55 | - return _navView; | ||
| 56 | -} | ||
| 57 | - | ||
| 58 | -- (UIButton *)left { | ||
| 59 | - if (!_left) { | ||
| 60 | - _left= [UIButton buttonWithType:UIButtonTypeCustom]; | ||
| 61 | - _left.adjustsImageWhenHighlighted = NO; | ||
| 62 | - _left.frame = CGRectMake(margin, StatusBarHeight, NavigationBarHeight, NavigationBarHeight); | ||
| 63 | - UIImage *image = [self getImageWithImageName:@"mine_back_black_b" bundleName:@"CNLiveLoginModule" targetClass:[self class]]; | ||
| 64 | - [_left setImage:[image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal]; | ||
| 65 | - _left.titleLabel.font = [UIFont systemFontOfSize:15]; | ||
| 66 | - [_left setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft]; | ||
| 67 | - [_left addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside]; | ||
| 68 | - } | ||
| 69 | - return _left; | ||
| 70 | -} | ||
| 71 | - | ||
| 72 | -- (UILabel *)title { | ||
| 73 | - if (!_title) { | ||
| 74 | - _title = [[UILabel alloc] initWithFrame:CGRectMake(margin+NavigationBarHeight, StatusBarHeight, SCREEN_WIDTH-2*(margin+NavigationBarHeight), NavigationBarHeight)]; | ||
| 75 | - [_title setFont:[UIFont systemFontOfSize:18]]; | ||
| 76 | - _title.textColor = [UIColor blackColor]; | ||
| 77 | - _title.textAlignment = NSTextAlignmentCenter; | ||
| 78 | - } | ||
| 79 | - return _title; | ||
| 80 | -} | ||
| 81 | - | ||
| 82 | -- (UIButton *)right { | ||
| 83 | - if (!_right) { | ||
| 84 | - _right = [UIButton buttonWithType:UIButtonTypeCustom]; | ||
| 85 | - _right.frame = CGRectMake(SCREEN_WIDTH-NavigationBarHeight-margin, StatusBarHeight, NavigationBarHeight, NavigationBarHeight); | ||
| 86 | - [_right setContentHorizontalAlignment:UIControlContentHorizontalAlignmentRight]; | ||
| 87 | - _right.adjustsImageWhenHighlighted = NO; | ||
| 88 | - _right.titleLabel.font = [UIFont systemFontOfSize:15]; | ||
| 89 | - [_right setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; | ||
| 90 | - [_right addTarget:self action:@selector(rightDidClicked:) forControlEvents:UIControlEventTouchUpInside]; | ||
| 91 | - } | ||
| 92 | - return _right; | ||
| 93 | -} | ||
| 94 | - | ||
| 95 | -#pragma mark - 响应方法 | ||
| 96 | -- (void)goBack{ | ||
| 97 | - if (self.delegate && [self.delegate respondsToSelector:@selector(navigationBar:actionEvents:)]) { | ||
| 98 | - [self.delegate navigationBar:self actionEvents:@"1"]; | ||
| 99 | - } | ||
| 100 | -} | ||
| 101 | -- (void)rightDidClicked:(UIButton *)btn{ | ||
| 102 | - if (self.delegate && [self.delegate respondsToSelector:@selector(navigationBar:actionEvents:)]) { | ||
| 103 | - [self.delegate navigationBar:self actionEvents:@"2"]; | ||
| 104 | - } | ||
| 105 | -} | ||
| 106 | - | ||
| 107 | -@end |
Example/CNLiveLoginModule.xcodeproj/project.pbxproj
| @@ -207,8 +207,8 @@ | @@ -207,8 +207,8 @@ | ||
| 207 | 6003F586195388D20070C39A /* Sources */, | 207 | 6003F586195388D20070C39A /* Sources */, |
| 208 | 6003F587195388D20070C39A /* Frameworks */, | 208 | 6003F587195388D20070C39A /* Frameworks */, |
| 209 | 6003F588195388D20070C39A /* Resources */, | 209 | 6003F588195388D20070C39A /* Resources */, |
| 210 | - 9E665687E99D8511B3D85BB7 /* [CP] Embed Pods Frameworks */, | ||
| 211 | - ED94DF5FADC63D17850E55EE /* [CP] Copy Pods Resources */, | 210 | + 057461B17BCCE0389584B0ED /* [CP] Embed Pods Frameworks */, |
| 211 | + 2A7FDE4BAF3533B61B4D4BF2 /* [CP] Copy Pods Resources */, | ||
| 212 | ); | 212 | ); |
| 213 | buildRules = ( | 213 | buildRules = ( |
| 214 | ); | 214 | ); |
| @@ -299,29 +299,7 @@ | @@ -299,29 +299,7 @@ | ||
| 299 | /* End PBXResourcesBuildPhase section */ | 299 | /* End PBXResourcesBuildPhase section */ |
| 300 | 300 | ||
| 301 | /* Begin PBXShellScriptBuildPhase section */ | 301 | /* Begin PBXShellScriptBuildPhase section */ |
| 302 | - 479B71CB631FBB2745B895A0 /* [CP] Check Pods Manifest.lock */ = { | ||
| 303 | - isa = PBXShellScriptBuildPhase; | ||
| 304 | - buildActionMask = 2147483647; | ||
| 305 | - files = ( | ||
| 306 | - ); | ||
| 307 | - inputFileListPaths = ( | ||
| 308 | - ); | ||
| 309 | - inputPaths = ( | ||
| 310 | - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | ||
| 311 | - "${PODS_ROOT}/Manifest.lock", | ||
| 312 | - ); | ||
| 313 | - name = "[CP] Check Pods Manifest.lock"; | ||
| 314 | - outputFileListPaths = ( | ||
| 315 | - ); | ||
| 316 | - outputPaths = ( | ||
| 317 | - "$(DERIVED_FILE_DIR)/Pods-CNLiveLoginModule_Tests-checkManifestLockResult.txt", | ||
| 318 | - ); | ||
| 319 | - runOnlyForDeploymentPostprocessing = 0; | ||
| 320 | - shellPath = /bin/sh; | ||
| 321 | - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | ||
| 322 | - showEnvVarsInLog = 0; | ||
| 323 | - }; | ||
| 324 | - 9E665687E99D8511B3D85BB7 /* [CP] Embed Pods Frameworks */ = { | 302 | + 057461B17BCCE0389584B0ED /* [CP] Embed Pods Frameworks */ = { |
| 325 | isa = PBXShellScriptBuildPhase; | 303 | isa = PBXShellScriptBuildPhase; |
| 326 | buildActionMask = 2147483647; | 304 | buildActionMask = 2147483647; |
| 327 | files = ( | 305 | files = ( |
| @@ -330,6 +308,7 @@ | @@ -330,6 +308,7 @@ | ||
| 330 | "${PODS_ROOT}/Target Support Files/Pods-CNLiveLoginModule_Example/Pods-CNLiveLoginModule_Example-frameworks.sh", | 308 | "${PODS_ROOT}/Target Support Files/Pods-CNLiveLoginModule_Example/Pods-CNLiveLoginModule_Example-frameworks.sh", |
| 331 | "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework", | 309 | "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework", |
| 332 | "${BUILT_PRODUCTS_DIR}/CNLiveAVCamera/CNLiveAVCamera.framework", | 310 | "${BUILT_PRODUCTS_DIR}/CNLiveAVCamera/CNLiveAVCamera.framework", |
| 311 | + "${BUILT_PRODUCTS_DIR}/CNLiveBaseClass/CNLiveBaseClass.framework", | ||
| 333 | "${BUILT_PRODUCTS_DIR}/CNLiveBaseKit/CNLiveBaseKit.framework", | 312 | "${BUILT_PRODUCTS_DIR}/CNLiveBaseKit/CNLiveBaseKit.framework", |
| 334 | "${BUILT_PRODUCTS_DIR}/CNLiveBaseTools/CNLiveBaseTools.framework", | 313 | "${BUILT_PRODUCTS_DIR}/CNLiveBaseTools/CNLiveBaseTools.framework", |
| 335 | "${BUILT_PRODUCTS_DIR}/CNLiveBeeHive/CNLiveBeeHive.framework", | 314 | "${BUILT_PRODUCTS_DIR}/CNLiveBeeHive/CNLiveBeeHive.framework", |
| @@ -338,6 +317,7 @@ | @@ -338,6 +317,7 @@ | ||
| 338 | "${BUILT_PRODUCTS_DIR}/CNLiveCategory/CNLiveCategory.framework", | 317 | "${BUILT_PRODUCTS_DIR}/CNLiveCategory/CNLiveCategory.framework", |
| 339 | "${BUILT_PRODUCTS_DIR}/CNLiveChooseCountry/CNLiveChooseCountry.framework", | 318 | "${BUILT_PRODUCTS_DIR}/CNLiveChooseCountry/CNLiveChooseCountry.framework", |
| 340 | "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework", | 319 | "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework", |
| 320 | + "${BUILT_PRODUCTS_DIR}/CNLiveCustomControl/CNLiveCustomControl.framework", | ||
| 341 | "${BUILT_PRODUCTS_DIR}/CNLiveEnvironment/CNLiveEnvironment.framework", | 321 | "${BUILT_PRODUCTS_DIR}/CNLiveEnvironment/CNLiveEnvironment.framework", |
| 342 | "${BUILT_PRODUCTS_DIR}/CNLiveImagePickerController/CNLiveImagePickerController.framework", | 322 | "${BUILT_PRODUCTS_DIR}/CNLiveImagePickerController/CNLiveImagePickerController.framework", |
| 343 | "${BUILT_PRODUCTS_DIR}/CNLiveManager/CNLiveManager.framework", | 323 | "${BUILT_PRODUCTS_DIR}/CNLiveManager/CNLiveManager.framework", |
| @@ -355,12 +335,14 @@ | @@ -355,12 +335,14 @@ | ||
| 355 | "${BUILT_PRODUCTS_DIR}/SDAutoLayout/SDAutoLayout.framework", | 335 | "${BUILT_PRODUCTS_DIR}/SDAutoLayout/SDAutoLayout.framework", |
| 356 | "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", | 336 | "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", |
| 357 | "${PODS_ROOT}/TXIMSDK_iOS/ImSDK.framework", | 337 | "${PODS_ROOT}/TXIMSDK_iOS/ImSDK.framework", |
| 338 | + "${BUILT_PRODUCTS_DIR}/WebViewJavascriptBridge/WebViewJavascriptBridge.framework", | ||
| 358 | "${BUILT_PRODUCTS_DIR}/YYKit/YYKit.framework", | 339 | "${BUILT_PRODUCTS_DIR}/YYKit/YYKit.framework", |
| 359 | ); | 340 | ); |
| 360 | name = "[CP] Embed Pods Frameworks"; | 341 | name = "[CP] Embed Pods Frameworks"; |
| 361 | outputPaths = ( | 342 | outputPaths = ( |
| 362 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework", | 343 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework", |
| 363 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveAVCamera.framework", | 344 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveAVCamera.framework", |
| 345 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseClass.framework", | ||
| 364 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseKit.framework", | 346 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseKit.framework", |
| 365 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseTools.framework", | 347 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseTools.framework", |
| 366 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBeeHive.framework", | 348 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBeeHive.framework", |
| @@ -369,6 +351,7 @@ | @@ -369,6 +351,7 @@ | ||
| 369 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCategory.framework", | 351 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCategory.framework", |
| 370 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveChooseCountry.framework", | 352 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveChooseCountry.framework", |
| 371 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework", | 353 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework", |
| 354 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCustomControl.framework", | ||
| 372 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveEnvironment.framework", | 355 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveEnvironment.framework", |
| 373 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveImagePickerController.framework", | 356 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveImagePickerController.framework", |
| 374 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveManager.framework", | 357 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveManager.framework", |
| @@ -386,6 +369,7 @@ | @@ -386,6 +369,7 @@ | ||
| 386 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDAutoLayout.framework", | 369 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDAutoLayout.framework", |
| 387 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", | 370 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", |
| 388 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ImSDK.framework", | 371 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ImSDK.framework", |
| 372 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebViewJavascriptBridge.framework", | ||
| 389 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYKit.framework", | 373 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYKit.framework", |
| 390 | ); | 374 | ); |
| 391 | runOnlyForDeploymentPostprocessing = 0; | 375 | runOnlyForDeploymentPostprocessing = 0; |
| @@ -393,7 +377,25 @@ | @@ -393,7 +377,25 @@ | ||
| 393 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveLoginModule_Example/Pods-CNLiveLoginModule_Example-frameworks.sh\"\n"; | 377 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveLoginModule_Example/Pods-CNLiveLoginModule_Example-frameworks.sh\"\n"; |
| 394 | showEnvVarsInLog = 0; | 378 | showEnvVarsInLog = 0; |
| 395 | }; | 379 | }; |
| 396 | - C744CFA8914B761288845DE6 /* [CP] Check Pods Manifest.lock */ = { | 380 | + 2A7FDE4BAF3533B61B4D4BF2 /* [CP] Copy Pods Resources */ = { |
| 381 | + isa = PBXShellScriptBuildPhase; | ||
| 382 | + buildActionMask = 2147483647; | ||
| 383 | + files = ( | ||
| 384 | + ); | ||
| 385 | + inputPaths = ( | ||
| 386 | + "${PODS_ROOT}/Target Support Files/Pods-CNLiveLoginModule_Example/Pods-CNLiveLoginModule_Example-resources.sh", | ||
| 387 | + "${PODS_CONFIGURATION_BUILD_DIR}/CNLiveLoginModule/CNLiveLoginModule.bundle", | ||
| 388 | + ); | ||
| 389 | + name = "[CP] Copy Pods Resources"; | ||
| 390 | + outputPaths = ( | ||
| 391 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLiveLoginModule.bundle", | ||
| 392 | + ); | ||
| 393 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 394 | + shellPath = /bin/sh; | ||
| 395 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveLoginModule_Example/Pods-CNLiveLoginModule_Example-resources.sh\"\n"; | ||
| 396 | + showEnvVarsInLog = 0; | ||
| 397 | + }; | ||
| 398 | + 479B71CB631FBB2745B895A0 /* [CP] Check Pods Manifest.lock */ = { | ||
| 397 | isa = PBXShellScriptBuildPhase; | 399 | isa = PBXShellScriptBuildPhase; |
| 398 | buildActionMask = 2147483647; | 400 | buildActionMask = 2147483647; |
| 399 | files = ( | 401 | files = ( |
| @@ -408,29 +410,33 @@ | @@ -408,29 +410,33 @@ | ||
| 408 | outputFileListPaths = ( | 410 | outputFileListPaths = ( |
| 409 | ); | 411 | ); |
| 410 | outputPaths = ( | 412 | outputPaths = ( |
| 411 | - "$(DERIVED_FILE_DIR)/Pods-CNLiveLoginModule_Example-checkManifestLockResult.txt", | 413 | + "$(DERIVED_FILE_DIR)/Pods-CNLiveLoginModule_Tests-checkManifestLockResult.txt", |
| 412 | ); | 414 | ); |
| 413 | runOnlyForDeploymentPostprocessing = 0; | 415 | runOnlyForDeploymentPostprocessing = 0; |
| 414 | shellPath = /bin/sh; | 416 | shellPath = /bin/sh; |
| 415 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | 417 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
| 416 | showEnvVarsInLog = 0; | 418 | showEnvVarsInLog = 0; |
| 417 | }; | 419 | }; |
| 418 | - ED94DF5FADC63D17850E55EE /* [CP] Copy Pods Resources */ = { | 420 | + C744CFA8914B761288845DE6 /* [CP] Check Pods Manifest.lock */ = { |
| 419 | isa = PBXShellScriptBuildPhase; | 421 | isa = PBXShellScriptBuildPhase; |
| 420 | buildActionMask = 2147483647; | 422 | buildActionMask = 2147483647; |
| 421 | files = ( | 423 | files = ( |
| 422 | ); | 424 | ); |
| 425 | + inputFileListPaths = ( | ||
| 426 | + ); | ||
| 423 | inputPaths = ( | 427 | inputPaths = ( |
| 424 | - "${PODS_ROOT}/Target Support Files/Pods-CNLiveLoginModule_Example/Pods-CNLiveLoginModule_Example-resources.sh", | ||
| 425 | - "${PODS_CONFIGURATION_BUILD_DIR}/CNLiveLoginModule/CNLiveLoginModule.bundle", | 428 | + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", |
| 429 | + "${PODS_ROOT}/Manifest.lock", | ||
| 430 | + ); | ||
| 431 | + name = "[CP] Check Pods Manifest.lock"; | ||
| 432 | + outputFileListPaths = ( | ||
| 426 | ); | 433 | ); |
| 427 | - name = "[CP] Copy Pods Resources"; | ||
| 428 | outputPaths = ( | 434 | outputPaths = ( |
| 429 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLiveLoginModule.bundle", | 435 | + "$(DERIVED_FILE_DIR)/Pods-CNLiveLoginModule_Example-checkManifestLockResult.txt", |
| 430 | ); | 436 | ); |
| 431 | runOnlyForDeploymentPostprocessing = 0; | 437 | runOnlyForDeploymentPostprocessing = 0; |
| 432 | shellPath = /bin/sh; | 438 | shellPath = /bin/sh; |
| 433 | - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveLoginModule_Example/Pods-CNLiveLoginModule_Example-resources.sh\"\n"; | 439 | + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
| 434 | showEnvVarsInLog = 0; | 440 | showEnvVarsInLog = 0; |
| 435 | }; | 441 | }; |
| 436 | /* End PBXShellScriptBuildPhase section */ | 442 | /* End PBXShellScriptBuildPhase section */ |