Commit 7ebd2c8bd7bc9427e2481300bb67fd0b5656d0f3

Authored by zhangxiaowen
1 parent 8306479e

no message

CNLiveQrCodeModule/Classes/Controller/CNLiveMyQrCodeController.m
... ... @@ -16,8 +16,9 @@
16 16  
17 17 #import "CNLiveQrCodeNavigationBar.h"
18 18 #import "CNLiveMyQrCodeView.h"
  19 +#import "CNLiveScanQrCodeController.h"
19 20  
20   -@interface CNLiveMyQrCodeController ()<CNLiveQrCodeNavigationBarDelegate>
  21 +@interface CNLiveMyQrCodeController ()<CNLiveQrCodeNavigationBarDelegate,QMUIAlertControllerDelegate>
21 22 @property (nonatomic, strong) CNLiveQrCodeNavigationBar *navigationBar;
22 23 @property (nonatomic, strong) UIImageView *bgView;
23 24 @property (nonatomic, strong) CNLiveMyQrCodeView *qrCodeView;
... ... @@ -57,17 +58,6 @@ static const CGFloat timeValue = 1.5;
57 58  
58 59 }
59 60  
60   -/**
61   - * 状态栏的颜色
62   - *
63   - * @return UIStatusBarStyle
64   - *
65   - */
66   -- (UIStatusBarStyle)preferredStatusBarStyle{
67   - return UIStatusBarStyleLightContent;
68   -
69   -}
70   -
71 61 #pragma mark - 响应方法
72 62 - (void)goBack {
73 63 if (self.presentingViewController != nil) {
... ... @@ -79,58 +69,6 @@ static const CGFloat timeValue = 1.5;
79 69 }
80 70 }
81 71  
82   -- (void)rightButtonDidClicked:(UIButton *)btn {
83   - btn.userInteractionEnabled = NO;
84   - __weak typeof(self) weakSelf = self;
85   -// XWAlertController *alertController = [XWAlertController alertControllerWithTitle:@"" message:@"" preferredStyle:XWAlertControllerStyleActionSheet];
86   -// alertController.delegate = self;
87   -// alertController.needDialogBlur = NO;
88   -// XWAlertAction *action1 = [XWAlertAction actionWithTitle:@"保存图片" style:XWAlertActionStyleDefault handler:^(XWAlertAction * _Nonnull action) {
89   -// __strong typeof(weakSelf) strongSelf = weakSelf;
90   -// if(!strongSelf) return ;
91   -// [strongSelf getPHAuthorizationStatus:^{
92   -// UIImage *image = [self.qrCodeView getImage];
93   -// [strongSelf saveImage:image];
94   -// }];
95   -// btn.userInteractionEnabled = YES;
96   -//
97   -// }];
98   -// XWAlertAction *action2 = [XWAlertAction actionWithTitle:@"扫描二维码" style:XWAlertActionStyleDefault handler:^(XWAlertAction * _Nonnull action) {
99   -// __strong typeof(weakSelf) strongSelf = weakSelf;
100   -// if(!strongSelf) return ;
101   -// if(strongSelf.isScanCode){
102   -// [strongSelf.navigationController popViewControllerAnimated:YES];
103   -// }else{
104   -// XWScanQrCodeController *vc = [[XWScanQrCodeController alloc]init];
105   -// vc.isMyCode = YES;
106   -// [strongSelf.navigationController pushViewController:vc animated:YES];
107   -// }
108   -// btn.userInteractionEnabled = YES;
109   -//
110   -// }];
111   -// XWAlertAction *action3 = [XWAlertAction actionWithTitle:@"重置二维码" style:XWAlertActionStyleDefault handler:^(XWAlertAction * _Nonnull action) {
112   -// __strong typeof(weakSelf) strongSelf = weakSelf;
113   -// if(!strongSelf) return ;
114   -// [strongSelf.qrCodeView generateQRCode:@"reset"];
115   -// btn.userInteractionEnabled = YES;
116   -//
117   -// }];
118   -// XWAlertAction *action4 = [XWAlertAction actionWithTitle:@"取消" style:XWAlertActionStyleCancel handler:^(XWAlertAction * _Nonnull action) {
119   -// btn.userInteractionEnabled = YES;
120   -// }];
121   -// [alertController addAction:action1];
122   -// [alertController addAction:action2];
123   -// [alertController addAction:action3]; // 取消按钮一定排在最底部
124   -// [alertController addAction:action4]; // 取消按钮一定排在最底部
125   -//
126   -// [self presentViewController:alertController animated:YES completion:^{}];
127   -
128   -}
129   -//// 已经dismiss
130   -//- (void)didDismissAlertController:(XWAlertController *)alertController{
131   -// self.rightBtn.userInteractionEnabled = YES;
132   -//}
133   -
134 72 - (void)getPHAuthorizationStatus:(void (^)(void))block{
135 73 // 1.获取当前App的相册授权状态
136 74 PHAuthorizationStatus authorizationStatus = [PHPhotoLibrary authorizationStatus];
... ... @@ -169,6 +107,10 @@ static const CGFloat timeValue = 1.5;
169 107  
170 108 // 保存图片
171 109 - (void)saveImage:(UIImage *)image{
  110 + if(!image){
  111 + [QMUITips showError:@"保存失败" inView:self.view hideAfterDelay:timeValue];
  112 + return;
  113 + }
172 114 [[PHPhotoLibrary sharedPhotoLibrary]performChanges:^{
173 115 [PHAssetChangeRequest creationRequestForAssetFromImage:image];
174 116  
... ... @@ -187,11 +129,86 @@ static const CGFloat timeValue = 1.5;
187 129 }
188 130  
189 131 #pragma mark - 代理
  132 +
  133 +/**
  134 + * 状态栏的颜色
  135 + *
  136 + * @return UIStatusBarStyle
  137 + *
  138 + */
  139 +- (UIStatusBarStyle)preferredStatusBarStyle{
  140 + return UIStatusBarStyleLightContent;
  141 +
  142 +}
  143 +
190 144 - (void)navigationBar:(CNLiveQrCodeNavigationBar *)navigationBar actionEvents:(NSString *)actionEvents{
191 145 if ([actionEvents isEqualToString:@"1"]) {
192 146 [self goBack];
193 147 }
  148 + else if ([actionEvents isEqualToString:@"2"]){
  149 + self.navigationBar.right.userInteractionEnabled = NO;
  150 + __weak typeof(self) weakSelf = self;
  151 + QMUIAlertAction *action1 = [QMUIAlertAction actionWithTitle:@"保存图片" style:QMUIAlertActionStyleDefault handler:^(__kindof QMUIAlertController *aAlertController, QMUIAlertAction *action) {
  152 + __strong typeof(weakSelf) strongSelf = weakSelf;
  153 + if(!strongSelf) return ;
  154 + [strongSelf getPHAuthorizationStatus:^{
  155 + UIImage *image = [self.qrCodeView getImage];
  156 + [strongSelf saveImage:image];
  157 + }];
  158 + self.navigationBar.right.userInteractionEnabled = YES;
  159 +
  160 + }];
  161 + QMUIAlertAction *action2 = [QMUIAlertAction actionWithTitle:@"扫描二维码" style:QMUIAlertActionStyleDefault handler:^(__kindof QMUIAlertController *aAlertController, QMUIAlertAction *action) {
  162 + __strong typeof(weakSelf) strongSelf = weakSelf;
  163 + if(!strongSelf) return ;
  164 + if(strongSelf.isScanCode){
  165 + [strongSelf.navigationController popViewControllerAnimated:YES];
  166 + }else{
  167 + CNLiveScanQrCodeController *vc = [[CNLiveScanQrCodeController alloc]init];
  168 + vc.isMyCode = YES;
  169 + [strongSelf.navigationController pushViewController:vc animated:YES];
  170 + }
  171 + self.navigationBar.right.userInteractionEnabled = YES;
  172 + }];
  173 + QMUIAlertAction *action3 = [QMUIAlertAction actionWithTitle:@"重置二维码" style:QMUIAlertActionStyleDefault handler:^(__kindof QMUIAlertController *aAlertController, QMUIAlertAction *action) {
  174 + __strong typeof(weakSelf) strongSelf = weakSelf;
  175 + if(!strongSelf) return ;
  176 + [strongSelf.qrCodeView generateQRCode:@"reset"];
  177 + self.navigationBar.right.userInteractionEnabled = YES;
  178 +
  179 + }];
  180 + QMUIAlertAction *cancel = [QMUIAlertAction actionWithTitle:@"取消" style:QMUIAlertActionStyleCancel handler:^(__kindof QMUIAlertController *aAlertController, QMUIAlertAction *action) {
  181 + __strong typeof(weakSelf) strongSelf = weakSelf;
  182 + if(!strongSelf) return ;
  183 + [strongSelf.qrCodeView generateQRCode:@"reset"];
  184 + self.navigationBar.right.userInteractionEnabled = YES;
  185 +
  186 + }];
  187 +
  188 + QMUIAlertController *alertController = [QMUIAlertController alertControllerWithTitle:@"" message:@"" preferredStyle:QMUIAlertControllerStyleActionSheet];
  189 + alertController.delegate = self;
  190 + [alertController addAction:action1];
  191 + [alertController addAction:action2];
  192 + [alertController addAction:action3];
  193 + [alertController addAction:cancel];
  194 +
  195 + NSMutableDictionary *cancelTitleAttributs = [[NSMutableDictionary alloc] initWithDictionary:alertController.alertTitleAttributes];
  196 +
  197 + cancelTitleAttributs[NSForegroundColorAttributeName] = [UIColor greenColor];
  198 +
  199 + action1.buttonAttributes = cancelTitleAttributs;
  200 + action2.buttonAttributes = cancelTitleAttributs;
  201 + action3.buttonAttributes = cancelTitleAttributs;
  202 + cancel.buttonAttributes = cancelTitleAttributs;
  203 +
  204 + [alertController showWithAnimated:YES];
  205 + }
194 206 }
  207 +- (void)didHideAlertController:(QMUIAlertController *)alertController{
  208 + self.navigationBar.right.userInteractionEnabled = YES;
  209 +
  210 +}
  211 +
195 212 #pragma mark - 懒加载
196 213 - (UIImageView *)bgView{
197 214 if(!_bgView){
... ...
CNLiveQrCodeModule/Classes/View/CNLiveMyQrCodeView.h
... ... @@ -12,6 +12,8 @@ NS_ASSUME_NONNULL_BEGIN
12 12  
13 13 @interface CNLiveMyQrCodeView : UIView
14 14  
  15 +- (void)generateQRCode:(NSString *)type;
  16 +- (UIImage *)getImage;
15 17  
16 18 @end
17 19  
... ...
CNLiveQrCodeModule/Classes/View/CNLiveMyQrCodeView.m
... ... @@ -24,6 +24,7 @@
24 24  
25 25 @implementation CNLiveMyQrCodeView
26 26 static const NSInteger margin = 20;
  27 +static const CGFloat timeValue = 1.5;
27 28  
28 29 - (instancetype)initWithFrame:(CGRect)frame{
29 30 self = [super initWithFrame:frame];
... ...
Example/CNLiveQrCodeModule/CNLIVEAppDelegate.m
... ... @@ -20,8 +20,8 @@
20 20  
21 21 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
22 22  
23   - CNLiveScanResultController *vc = [[CNLiveScanResultController alloc] init];
24   - vc.jump_URL = @"http://www.baidu.com";
  23 + CNLiveMyQrCodeController *vc = [[CNLiveMyQrCodeController alloc] init];
  24 +// vc.jump_URL = @"http://www.baidu.com";
25 25 UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc];
26 26  
27 27 self.window.rootViewController = nav;//设置根视图控制器
... ...