Commit 24d8f6e39f571b57d627baa9e7f308fe243ae2a2
1 parent
6dcedf1a
no message
Showing
57 changed files
with
103 additions
and
64 deletions
CNLiveBMineModule.podspec
| ... | ... | @@ -66,7 +66,8 @@ TODO: 网家家企业版-我的模块. |
| 66 | 66 | ss.source_files = 'CNLiveBMineModule/Classes/Setting/**/*.{h,m}' |
| 67 | 67 | end |
| 68 | 68 | s.resource_bundles = { |
| 69 | - 'CNLiveBMineModule' => ['CNLiveBMineModule/Assets/CNLiveBMineModule.xcassets'] | |
| 69 | +# 'CNLiveBMineModule' => ['CNLiveBMineModule/Assets/CNLiveBMineModule.xcassets'] | |
| 70 | + 'CNLiveBMineModule' => ['CNLiveBMineModule/Assets/CNLiveBMineModule.bundle'] | |
| 70 | 71 | } |
| 71 | 72 | |
| 72 | 73 | # s.public_header_files = 'Pod/Classes/**/*.h' | ... | ... |
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/default_avatar_f.png
0 → 100644
11.1 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/default_avatar_y.png
0 → 100644
10.7 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_apple@2x.png
0 → 100644
2.54 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_apple@3x.png
0 → 100644
4.8 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_bg@2x.png
0 → 100644
168 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_bg@3x.png
0 → 100644
332 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_bg_top@2x.png
0 → 100644
3.31 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_bg_top@3x.png
0 → 100644
7.32 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_cancellation_agree@2x.png
0 → 100644
331 Bytes
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_cancellation_agree@3x.png
0 → 100644
650 Bytes
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_cancellation_agree_sel@2x.png
0 → 100644
733 Bytes
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_cancellation_agree_sel@3x.png
0 → 100644
1.33 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_common@2x.png
0 → 100644
2.14 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_common@3x.png
0 → 100644
4.11 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_doyen@2x.png
0 → 100644
1.79 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_doyen@3x.png
0 → 100644
3.32 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_into@2x.png
0 → 100644
573 Bytes
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_into@3x.png
0 → 100644
653 Bytes
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_location@2x.png
0 → 100644
806 Bytes
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_location@3x.png
0 → 100644
1.56 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_logo@2x.png
0 → 100644
24.8 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_logo@3x.png
0 → 100644
48.4 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_qb@2x.png
0 → 100644
2.75 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_qb@3x.png
0 → 100644
5.12 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_qiye@2x.png
0 → 100644
887 Bytes
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_qiye@3x.png
0 → 100644
2.8 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_qq@2x.png
0 → 100644
3.25 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_qq@3x.png
0 → 100644
6.58 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_sz@2x.png
0 → 100644
2.67 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_sz@3x.png
0 → 100644
4.59 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_telephone@2x.png
0 → 100644
2.59 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_telephone@3x.png
0 → 100644
7.8 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_update_select@2x.png
0 → 100644
330 Bytes
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_update_select@3x.png
0 → 100644
700 Bytes
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_wechat@2x.png
0 → 100644
3.9 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_wechat@3x.png
0 → 100644
7.83 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_weibo@2x.png
0 → 100644
6.38 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_weibo@3x.png
0 → 100644
12.4 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_wjj_certification@2x.png
0 → 100644
6.92 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_wjj_certification@3x.png
0 → 100644
15.1 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_zbzx@2x.png
0 → 100644
1.84 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_zbzx@3x.png
0 → 100644
3.44 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_zy@2x.png
0 → 100644
41.8 KB
CNLiveBMineModule/Assets/CNLiveBMineModule.bundle/mine_zy@3x.png
0 → 100644
148 KB
CNLiveBMineModule/Classes/Controller/CNLiveMineController.m
CNLiveBMineModule/Classes/Setting/AboutUs/CNLiveAboutUsController.m
| ... | ... | @@ -256,7 +256,7 @@ |
| 256 | 256 | _headerView.clipsToBounds = YES; |
| 257 | 257 | _headerView.backgroundColor = [UIColor colorWithRed:242/255.0 green:242/255.0 blue:242/255.0 alpha:1.0]; |
| 258 | 258 | UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake((SCREEN_WIDTH-80)/2.0, 30, 80, 105)]; |
| 259 | - UIImage *image = [self getImageWithImageName:@"mine_logo" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 259 | + UIImage *image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_logo" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 260 | 260 | imageView.image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; |
| 261 | 261 | imageView.contentMode = UIViewContentModeCenter; |
| 262 | 262 | [_headerView addSubview:imageView]; | ... | ... |
CNLiveBMineModule/Classes/Setting/BindingManage/CNLiveBindingManageRequest.m
| ... | ... | @@ -194,7 +194,7 @@ |
| 194 | 194 | NSMutableArray *unBindingData = [[NSMutableArray alloc] init]; |
| 195 | 195 | CNLiveBindingManageModel *tmodel = [[CNLiveBindingManageModel alloc]init]; |
| 196 | 196 | tmodel.title = @"手机号"; |
| 197 | - tmodel.image = @"mine_telephone"; | |
| 197 | + tmodel.image = @"CNLiveBMineModule.bundle/mine_telephone"; | |
| 198 | 198 | if(CNUserShareModel.mobile&&![CNUserShareModel.mobile isEqualToString:@""]){ |
| 199 | 199 | if (CNUserShareModel.mobile.length > 10) { |
| 200 | 200 | NSString *mobile = [CNUserShareModel.mobile stringByReplacingCharactersInRange:NSMakeRange(3, 4) withString:@"****"]; |
| ... | ... | @@ -212,7 +212,7 @@ |
| 212 | 212 | |
| 213 | 213 | CNLiveBindingManageModel *wmodel = [[CNLiveBindingManageModel alloc]init]; |
| 214 | 214 | wmodel.title = @"微信"; |
| 215 | - wmodel.image = @"mine_wechat"; | |
| 215 | + wmodel.image = @"CNLiveBMineModule.bundle/mine_wechat"; | |
| 216 | 216 | wmodel.thirdPartyPlat = @"3"; |
| 217 | 217 | |
| 218 | 218 | if(CNUserShareModel.wxUid&&![CNUserShareModel.wxUid isEqualToString:@""]){ |
| ... | ... | @@ -227,7 +227,7 @@ |
| 227 | 227 | |
| 228 | 228 | CNLiveBindingManageModel *qmodel = [[CNLiveBindingManageModel alloc]init]; |
| 229 | 229 | qmodel.title = @"QQ"; |
| 230 | - qmodel.image = @"mine_qq"; | |
| 230 | + qmodel.image = @"CNLiveBMineModule.bundle/mine_qq"; | |
| 231 | 231 | qmodel.thirdPartyPlat = @"2"; |
| 232 | 232 | if(CNUserShareModel.qqUid&&![CNUserShareModel.qqUid isEqualToString:@""]){ |
| 233 | 233 | qmodel.desc = @"已绑定QQ"; |
| ... | ... | @@ -241,7 +241,7 @@ |
| 241 | 241 | |
| 242 | 242 | CNLiveBindingManageModel *smodel = [[CNLiveBindingManageModel alloc]init]; |
| 243 | 243 | smodel.title = @"微博"; |
| 244 | - smodel.image = @"mine_weibo"; | |
| 244 | + smodel.image = @"CNLiveBMineModule.bundle/mine_weibo"; | |
| 245 | 245 | smodel.thirdPartyPlat = @"1"; |
| 246 | 246 | if(CNUserShareModel.sinaUid&&![CNUserShareModel.sinaUid isEqualToString:@""]){ |
| 247 | 247 | smodel.desc = @"已绑定微博"; |
| ... | ... | @@ -256,7 +256,7 @@ |
| 256 | 256 | if (@available(iOS 13, *)) { |
| 257 | 257 | CNLiveBindingManageModel *amodel = [[CNLiveBindingManageModel alloc]init]; |
| 258 | 258 | amodel.title = @"苹果账号"; |
| 259 | - amodel.image = @"mine_apple"; | |
| 259 | + amodel.image = @"CNLiveBMineModule.bundle/mine_apple"; | |
| 260 | 260 | amodel.thirdPartyPlat = @"5"; |
| 261 | 261 | if(CNUserShareModel.appleUid&&![CNUserShareModel.appleUid isEqualToString:@""]){ |
| 262 | 262 | amodel.desc = @"已绑定苹果账号"; | ... | ... |
CNLiveBMineModule/Classes/Setting/Cancellation/CNLiveCancellationView.m
| ... | ... | @@ -106,9 +106,9 @@ static const NSInteger margin = 15; |
| 106 | 106 | - (UIButton *)agreeBtn{ |
| 107 | 107 | if (!_agreeBtn) { |
| 108 | 108 | _agreeBtn = [UIButton buttonWithType:UIButtonTypeCustom]; |
| 109 | - UIImage *xw_image1 = [self getImageWithImageName:@"mine_cancellation_agree" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveCancellationView class]]; | |
| 109 | + UIImage *xw_image1 = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_cancellation_agree" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveCancellationView class]]; | |
| 110 | 110 | |
| 111 | - UIImage *xw_image2 = [self getImageWithImageName:@"mine_cancellation_agree_sel" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveCancellationView class]]; | |
| 111 | + UIImage *xw_image2 = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_cancellation_agree_sel" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveCancellationView class]]; | |
| 112 | 112 | |
| 113 | 113 | [_agreeBtn setImage:xw_image1 forState:UIControlStateNormal]; |
| 114 | 114 | [_agreeBtn setImage:xw_image2 forState:UIControlStateSelected]; | ... | ... |
CNLiveBMineModule/Classes/Setting/UpdateTel/CNLiveUpdateTelView.m
| ... | ... | @@ -97,6 +97,7 @@ static const NSInteger timeValue = 1.5; |
| 97 | 97 | [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
| 98 | 98 | make.top.equalTo(self.lineView.mas_bottom).offset(0); |
| 99 | 99 | make.left.equalTo(self).offset(margin); |
| 100 | + make.width.mas_equalTo(45); | |
| 100 | 101 | make.height.mas_equalTo(50); |
| 101 | 102 | }]; |
| 102 | 103 | [self.verification mas_makeConstraints:^(MASConstraintMaker *make) { |
| ... | ... | @@ -107,23 +108,24 @@ static const NSInteger timeValue = 1.5; |
| 107 | 108 | }]; |
| 108 | 109 | [self.telTF mas_makeConstraints:^(MASConstraintMaker *make) { |
| 109 | 110 | make.centerY.equalTo(self.numberLabel); |
| 110 | - make.left.equalTo(self.numberLabel.mas_right).offset(20); | |
| 111 | + make.left.equalTo(self.numberLabel.mas_right).offset(margin); | |
| 111 | 112 | make.right.equalTo(self.verification.mas_left).offset(-margin); |
| 112 | 113 | }]; |
| 113 | 114 | [self.codeLabel mas_makeConstraints:^(MASConstraintMaker *make) { |
| 114 | 115 | make.top.equalTo(self.numberLabel.mas_bottom).offset(0); |
| 115 | 116 | make.left.equalTo(self.numberLabel); |
| 116 | - make.height.mas_equalTo(50); | |
| 117 | + make.width.equalTo(self.numberLabel); | |
| 118 | + make.height.equalTo(self.numberLabel); | |
| 117 | 119 | |
| 118 | 120 | }]; |
| 119 | 121 | [self.codeTF mas_makeConstraints:^(MASConstraintMaker *make) { |
| 120 | 122 | make.centerY.equalTo(self.codeLabel); |
| 121 | - make.left.equalTo(self.codeLabel.mas_right).offset(20); | |
| 123 | + make.left.equalTo(self.codeLabel.mas_right).offset(margin); | |
| 122 | 124 | make.width.equalTo(self.telTF); |
| 123 | 125 | }]; |
| 124 | 126 | |
| 125 | 127 | [self.bindingView mas_makeConstraints:^(MASConstraintMaker *make) { |
| 126 | - make.top.equalTo(self.codeTF.mas_bottom).offset(15); | |
| 128 | + make.top.equalTo(self.codeTF.mas_bottom).offset(margin); | |
| 127 | 129 | make.left.equalTo(self).offset(0); |
| 128 | 130 | make.right.equalTo(self).offset(-0); |
| 129 | 131 | make.bottom.equalTo(self.mas_bottom).offset(-0); |
| ... | ... | @@ -203,7 +205,7 @@ static const NSInteger timeValue = 1.5; |
| 203 | 205 | if (!_countryImg) { |
| 204 | 206 | _countryImg = [[UIImageView alloc] init]; |
| 205 | 207 | _countryImg.userInteractionEnabled = YES; |
| 206 | - UIImage *image = [self getImageWithImageName:@"mine_info_front" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 208 | + UIImage *image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_into" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 207 | 209 | _countryImg.image = image; |
| 208 | 210 | _countryImg.contentMode = UIViewContentModeCenter; |
| 209 | 211 | UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(countryTap:)]; |
| ... | ... | @@ -256,6 +258,7 @@ static const NSInteger timeValue = 1.5; |
| 256 | 258 | _telTF.placeholder = @"请输入新手机号"; |
| 257 | 259 | _telTF.delegate = self; |
| 258 | 260 | _telTF.keyboardType = UIKeyboardTypeNumberPad; |
| 261 | + _telTF.textAlignment = NSTextAlignmentLeft; | |
| 259 | 262 | [_telTF addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged]; |
| 260 | 263 | _telTF.tag = 10001; |
| 261 | 264 | } |
| ... | ... | @@ -340,9 +343,6 @@ static const NSInteger timeValue = 1.5; |
| 340 | 343 | } |
| 341 | 344 | else { |
| 342 | 345 | // 发送验证码 |
| 343 | - [self.telTF resignFirstResponder]; | |
| 344 | - [self.codeTF becomeFirstResponder]; | |
| 345 | - | |
| 346 | 346 | self.verification.userInteractionEnabled = NO; |
| 347 | 347 | self.verification.backgroundColor = [UIColor colorWithRed:242/255.0 green:242/255.0 blue:242/255.0 alpha:1.0]; |
| 348 | 348 | [self.verification setTitleColor:[UIColor colorWithRed:195/255.0 green:195/255.0 blue:195/255.0 alpha:1.0] forState:UIControlStateNormal]; |
| ... | ... | @@ -350,6 +350,9 @@ static const NSInteger timeValue = 1.5; |
| 350 | 350 | |
| 351 | 351 | [CNLiveUserSystemCenter verificationCodeType:VerificationCodeTypeRegister mobile:self.telTF.text countryCode:_codeNum success:^(id result) { |
| 352 | 352 | |
| 353 | + [self.telTF resignFirstResponder]; | |
| 354 | + [self.codeTF becomeFirstResponder]; | |
| 355 | + | |
| 353 | 356 | [QMUITips showSucceed:@"短信发送成功" inView:[UIApplication sharedApplication].delegate.window hideAfterDelay:timeValue]; |
| 354 | 357 | self.gotVerificationCode = YES; |
| 355 | 358 | [self countDown]; | ... | ... |
CNLiveBMineModule/Classes/Setting/View/CNLiveSettingCell.m
| ... | ... | @@ -150,7 +150,7 @@ static const NSInteger margin = 12; |
| 150 | 150 | - (UIImageView *)front { |
| 151 | 151 | if (!_front) { |
| 152 | 152 | _front = [[UIImageView alloc] init]; |
| 153 | - UIImage *xw_image = [self getImageWithImageName:@"mine_into" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveSettingCell class]]; | |
| 153 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_into" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveSettingCell class]]; | |
| 154 | 154 | _front.image = xw_image; |
| 155 | 155 | _front.contentMode = UIViewContentModeCenter; |
| 156 | 156 | } | ... | ... |
CNLiveBMineModule/Classes/UserInfo/CNLiveInfoUpdateCell.m
| ... | ... | @@ -108,7 +108,7 @@ static const NSInteger margin = 12; |
| 108 | 108 | - (UIImageView *)pic { |
| 109 | 109 | if (!_pic) { |
| 110 | 110 | _pic = [[UIImageView alloc] init]; |
| 111 | - UIImage *xw_image = [self getImageWithImageName:@"mine_update_select" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 111 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_update_select" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 112 | 112 | _pic.image = xw_image; |
| 113 | 113 | _pic.hidden = YES; |
| 114 | 114 | _pic.contentMode = UIViewContentModeCenter; | ... | ... |
CNLiveBMineModule/Classes/UserInfo/CNLiveInfoUpdateController.m
| ... | ... | @@ -94,12 +94,39 @@ static const CGFloat timeValue = 1.5; |
| 94 | 94 | } |
| 95 | 95 | |
| 96 | 96 | #pragma mark - UITextFieldDelegate |
| 97 | +- (void)textFieldDidChange:(UITextField *)textField { | |
| 98 | + self.navigationBar.right.userInteractionEnabled = YES; | |
| 99 | + | |
| 100 | + NSString *toBeString = textField.text; | |
| 101 | + | |
| 102 | + UITextRange *selectedRange = [textField markedTextRange]; | |
| 103 | + UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0]; | |
| 104 | + | |
| 105 | + // 没有高亮选择的字,则对已输入的文字进行字数统计和限制,防止中文被截断 | |
| 106 | + if (!position || !selectedRange){ | |
| 107 | + NSInteger maxLength = (self.model.dataType == CNLiveUserInfoDataTypeNickname) ? _nickMaxLength : _locMaxLength; | |
| 108 | + if (toBeString.length > maxLength){ | |
| 109 | + //中文和emoj表情存在问题,需要对此进行处理 | |
| 110 | + NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, maxLength)]; | |
| 111 | + textField.text = [toBeString substringWithRange:rangeRange]; | |
| 112 | + } | |
| 113 | + } | |
| 114 | +} | |
| 115 | + | |
| 116 | +- (BOOL)textFieldShouldClear:(UITextField *)textField { | |
| 117 | + return NO; | |
| 118 | +} | |
| 119 | + | |
| 97 | 120 | - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { |
| 98 | 121 | self.navigationBar.right.userInteractionEnabled = YES; |
| 99 | 122 | self.navigationBar.right.backgroundColor = [UIColor colorWithRed:72/255.0 green:167/255.0 blue:249/255.0 alpha:1.0]; |
| 100 | 123 | NSInteger maxLength = (self.model.dataType == CNLiveUserInfoDataTypeNickname) ? _nickMaxLength : _locMaxLength; |
| 101 | - if (range.location >= maxLength) { | |
| 102 | - textField.text = [textField.text substringToIndex:maxLength]; | |
| 124 | + if (range.length > maxLength) { | |
| 125 | + return NO; | |
| 126 | + } | |
| 127 | + if (range.location + string.length >= maxLength) { | |
| 128 | + NSString *text = [NSString stringWithFormat:@"%@%@",textField.text,string]; | |
| 129 | + textField.text = [text substringToIndex:maxLength]; | |
| 103 | 130 | return NO; |
| 104 | 131 | } |
| 105 | 132 | return YES; |
| ... | ... | @@ -708,7 +735,7 @@ static const CGFloat timeValue = 1.5; |
| 708 | 735 | if(!_imageView){ |
| 709 | 736 | _imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_WIDTH)]; |
| 710 | 737 | _imageView.center = self.view.center; |
| 711 | - UIImage *xw_image = [self getImageWithImageName:@"default_avatar_f" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveInfoUpdateController class]]; | |
| 738 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/default_avatar_f" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveInfoUpdateController class]]; | |
| 712 | 739 | [_imageView sd_setImageWithURL:[NSURL URLWithString:CNUserShareModel.bigFaceUrl?CNUserShareModel.bigFaceUrl:CNUserShareModel.faceUrl] placeholderImage:xw_image]; |
| 713 | 740 | } |
| 714 | 741 | return _imageView; | ... | ... |
CNLiveBMineModule/Classes/UserInfo/CNLiveUserInfoCell.m
| ... | ... | @@ -52,7 +52,7 @@ static const NSInteger margin = 12; |
| 52 | 52 | _content.text = model.info; |
| 53 | 53 | |
| 54 | 54 | if(model.dataType == CNLiveUserInfoDataTypeHeader){ |
| 55 | - UIImage *xw_image = [self getImageWithImageName:@"default_avatar_y" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 55 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/default_avatar_y" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 56 | 56 | [_pic sd_setImageWithURL:[NSURL URLWithString:model.info] placeholderImage:xw_image]; |
| 57 | 57 | |
| 58 | 58 | }else if (model.dataType == CNLiveUserInfoDataTypeNickname){ |
| ... | ... | @@ -86,6 +86,7 @@ static const NSInteger margin = 12; |
| 86 | 86 | [_title mas_updateConstraints:^(MASConstraintMaker *make) { |
| 87 | 87 | make.left.equalTo(self.contentView.mas_left).with.offset(margin); |
| 88 | 88 | make.top.equalTo(self.contentView.mas_top).with.offset(0); |
| 89 | + make.width.offset(40); | |
| 89 | 90 | make.height.offset(self.model.height-self.model.lineHeight); |
| 90 | 91 | |
| 91 | 92 | }]; |
| ... | ... | @@ -181,7 +182,7 @@ static const NSInteger margin = 12; |
| 181 | 182 | - (UIImageView *)front { |
| 182 | 183 | if (!_front) { |
| 183 | 184 | _front = [[UIImageView alloc] init]; |
| 184 | - UIImage *xw_image = [self getImageWithImageName:@"mine_into" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 185 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_into" bundleName:@"CNLiveBMineModule" targetClass:[self class]]; | |
| 185 | 186 | _front.image = xw_image; |
| 186 | 187 | _front.contentMode = UIViewContentModeCenter; |
| 187 | 188 | ... | ... |
CNLiveBMineModule/Classes/View/CNLiveMineCell.m
| ... | ... | @@ -120,7 +120,7 @@ static const CGFloat margin = 10; |
| 120 | 120 | _rightImage.backgroundColor = [UIColor whiteColor]; |
| 121 | 121 | _rightImage.layer.masksToBounds = NO; |
| 122 | 122 | _rightImage.layer.shadowColor = [UIColor blackColor].CGColor; |
| 123 | - UIImage *xw_image = [self getImageWithImageName:@"mine_into" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineCell class]]; | |
| 123 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_into" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineCell class]]; | |
| 124 | 124 | _rightImage.image = xw_image; |
| 125 | 125 | _rightImage.contentMode = UIViewContentModeCenter; |
| 126 | 126 | } | ... | ... |
CNLiveBMineModule/Classes/View/CNLiveMineHeaderView.m
| ... | ... | @@ -48,14 +48,14 @@ static const NSInteger margin = 20; |
| 48 | 48 | CNLiveUserInfoDataType type = [[dic objectForKey:@"dataType"] integerValue]; |
| 49 | 49 | NSString *info = [dic objectForKey:@"info"]; |
| 50 | 50 | if(type == CNLiveUserInfoDataTypeHeader){ |
| 51 | - UIImage *xw_image = [self getImageWithImageName:@"default_avatar_y" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 51 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/default_avatar_y" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 52 | 52 | [_header sd_setImageWithURL:[NSURL URLWithString:info] placeholderImage:xw_image]; |
| 53 | 53 | |
| 54 | 54 | }else if(type == CNLiveUserInfoDataTypeNickname){ |
| 55 | 55 | _name.text = info; |
| 56 | 56 | |
| 57 | 57 | }else if(type == CNLiveUserInfoDataTypeAddress){ |
| 58 | - _address.attributedText = [self createAttributedImageName:@"mine_location" string:info?info:@"未知" fontSize:13.0 isFront:YES]; | |
| 58 | + _address.attributedText = [self createAttributedImageName:@"CNLiveBMineModule.bundle/mine_location" string:info?info:@"未知" fontSize:13.0 isFront:YES]; | |
| 59 | 59 | |
| 60 | 60 | } |
| 61 | 61 | } |
| ... | ... | @@ -143,7 +143,7 @@ static const NSInteger margin = 20; |
| 143 | 143 | _isRefresh = isRefresh; |
| 144 | 144 | if(isRefresh){ |
| 145 | 145 | _name.text = CNUserShareModel.nickname; |
| 146 | - _address.attributedText = [self createAttributedImageName:@"mine_location" string:CNUserShareModel.location?CNUserShareModel.location:@"未知" fontSize:13.0 isFront:YES]; | |
| 146 | + _address.attributedText = [self createAttributedImageName:@"CNLiveBMineModule.bundle/mine_location" string:CNUserShareModel.location?CNUserShareModel.location:@"未知" fontSize:13.0 isFront:YES]; | |
| 147 | 147 | } |
| 148 | 148 | } |
| 149 | 149 | |
| ... | ... | @@ -227,7 +227,11 @@ static const NSInteger margin = 20; |
| 227 | 227 | [self.delegate headerView:self pushToController:CNLiveMineHeaderViewTypeUerInfo]; |
| 228 | 228 | } |
| 229 | 229 | } |
| 230 | - | |
| 230 | +- (void)addressTapDidClicked:(UITapGestureRecognizer *)tap{ | |
| 231 | + if (self.delegate && [self.delegate respondsToSelector:@selector(headerView:pushToController:)]) { | |
| 232 | + [self.delegate headerView:self pushToController:CNLiveMineHeaderViewTypeUerInfo]; | |
| 233 | + } | |
| 234 | +} | |
| 231 | 235 | - (void)homeDidClicked:(UIButton *)btn{ |
| 232 | 236 | if (self.delegate && [self.delegate respondsToSelector:@selector(headerView:pushToController:)]) { |
| 233 | 237 | [self.delegate headerView:self pushToController:CNLiveMineHeaderViewTypeHome]; |
| ... | ... | @@ -238,7 +242,7 @@ static const NSInteger margin = 20; |
| 238 | 242 | - (UIButton *)home { |
| 239 | 243 | if (!_home) { |
| 240 | 244 | _home = [UIButton buttonWithType:UIButtonTypeCustom]; |
| 241 | - UIImage *xw_image = [self getImageWithImageName:@"mine_zy" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 245 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_zy" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 242 | 246 | _home.imageView.contentMode = UIViewContentModeScaleAspectFit; |
| 243 | 247 | [_home setBackgroundImage:xw_image forState:UIControlStateNormal]; |
| 244 | 248 | _home.adjustsImageWhenHighlighted = NO; |
| ... | ... | @@ -250,7 +254,7 @@ static const NSInteger margin = 20; |
| 250 | 254 | if (!_bgView) { |
| 251 | 255 | _bgView = [[UIImageView alloc] init]; |
| 252 | 256 | _bgView.userInteractionEnabled = YES; |
| 253 | - UIImage *xw_image = [self getImageWithImageName:@"mine_bg" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 257 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_bg" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 254 | 258 | _bgView.image = xw_image; |
| 255 | 259 | } |
| 256 | 260 | return _bgView; |
| ... | ... | @@ -260,7 +264,7 @@ static const NSInteger margin = 20; |
| 260 | 264 | if (!_bgTopView) { |
| 261 | 265 | _bgTopView = [[UIImageView alloc] init]; |
| 262 | 266 | _bgTopView.userInteractionEnabled = YES; |
| 263 | - UIImage *xw_image = [self getImageWithImageName:@"mine_bg_top" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 267 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/mine_bg_top" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 264 | 268 | _bgTopView.image = xw_image; |
| 265 | 269 | } |
| 266 | 270 | return _bgTopView; |
| ... | ... | @@ -271,7 +275,7 @@ static const NSInteger margin = 20; |
| 271 | 275 | _header.userInteractionEnabled = YES; |
| 272 | 276 | _header.layer.masksToBounds = YES; |
| 273 | 277 | _header.layer.cornerRadius = 28; |
| 274 | - UIImage *xw_image = [self getImageWithImageName:@"default_avatar_y" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 278 | + UIImage *xw_image = [self getImageWithImageName:@"CNLiveBMineModule.bundle/default_avatar_y" bundleName:@"CNLiveBMineModule" targetClass:[CNLiveMineHeaderView class]]; | |
| 275 | 279 | [_header sd_setImageWithURL:[NSURL URLWithString:CNUserShareModel.faceUrl] placeholderImage:xw_image]; |
| 276 | 280 | UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(headerTapDidClicked:)]; |
| 277 | 281 | [_header addGestureRecognizer:tap]; |
| ... | ... | @@ -299,7 +303,7 @@ static const NSInteger margin = 20; |
| 299 | 303 | _certification.numberOfLines = 1; |
| 300 | 304 | _certification.textColor = [UIColor whiteColor]; |
| 301 | 305 | _certification.font = [UIFont systemFontOfSize:16]; |
| 302 | - NSMutableArray *images = [NSMutableArray arrayWithArray:@[@"mine_wjj_certification", @"mine_common"]]; | |
| 306 | + NSMutableArray *images = [NSMutableArray arrayWithArray:@[@"CNLiveBMineModule.bundle/mine_wjj_certification", @"CNLiveBMineModule.bundle/mine_common"]]; | |
| 303 | 307 | // 企业 |
| 304 | 308 | if ([CNUserShareModel.wjjStatus.institutionStatus isEqualToString:@"1"]) { |
| 305 | 309 | [images addObject:@"mine_qiye"]; |
| ... | ... | @@ -311,10 +315,13 @@ static const NSInteger margin = 20; |
| 311 | 315 | - (UILabel *)address { |
| 312 | 316 | if (!_address) { |
| 313 | 317 | _address = [[UILabel alloc] init]; |
| 318 | + _address.userInteractionEnabled = YES; | |
| 314 | 319 | _address.numberOfLines = 1; |
| 315 | 320 | _address.textColor = [UIColor colorWithRed:51/255.0 green:51/255.0 blue:51/255.0 alpha:1.0]; |
| 316 | 321 | _address.font = [UIFont systemFontOfSize:13]; |
| 317 | - _address.attributedText = [self createAttributedImageName:@"mine_location" string:CNUserShareModel.location?CNUserShareModel.location:@"未知" fontSize:13.0 isFront:YES]; | |
| 322 | + _address.attributedText = [self createAttributedImageName:@"CNLiveBMineModule.bundle/mine_location" string:CNUserShareModel.location?CNUserShareModel.location:@"未知" fontSize:13.0 isFront:YES]; | |
| 323 | + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(addressTapDidClicked:)]; | |
| 324 | + [_address addGestureRecognizer:tap]; | |
| 318 | 325 | } |
| 319 | 326 | return _address; |
| 320 | 327 | } | ... | ... |
Example/CNLiveBMineModule.xcodeproj/project.pbxproj
| ... | ... | @@ -207,8 +207,8 @@ |
| 207 | 207 | 6003F586195388D20070C39A /* Sources */, |
| 208 | 208 | 6003F587195388D20070C39A /* Frameworks */, |
| 209 | 209 | 6003F588195388D20070C39A /* Resources */, |
| 210 | - 843173646D6321F7E65D9A65 /* [CP] Embed Pods Frameworks */, | |
| 211 | - 05E4C1AD4CDFB01FBAEA75CF /* [CP] Copy Pods Resources */, | |
| 210 | + CFF4ECA8383DD2C6DAD192A0 /* [CP] Embed Pods Frameworks */, | |
| 211 | + 6ACE8E484C9A80AF5A11B176 /* [CP] Copy Pods Resources */, | |
| 212 | 212 | ); |
| 213 | 213 | buildRules = ( |
| 214 | 214 | ); |
| ... | ... | @@ -299,7 +299,29 @@ |
| 299 | 299 | /* End PBXResourcesBuildPhase section */ |
| 300 | 300 | |
| 301 | 301 | /* Begin PBXShellScriptBuildPhase section */ |
| 302 | - 05E4C1AD4CDFB01FBAEA75CF /* [CP] Copy Pods Resources */ = { | |
| 302 | + 2A8336772A36DEB07525BA2F /* [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-CNLiveBMineModule_Example-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 | + 6ACE8E484C9A80AF5A11B176 /* [CP] Copy Pods Resources */ = { | |
| 303 | 325 | isa = PBXShellScriptBuildPhase; |
| 304 | 326 | buildActionMask = 2147483647; |
| 305 | 327 | files = ( |
| ... | ... | @@ -323,7 +345,7 @@ |
| 323 | 345 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveBMineModule_Example/Pods-CNLiveBMineModule_Example-resources.sh\"\n"; |
| 324 | 346 | showEnvVarsInLog = 0; |
| 325 | 347 | }; |
| 326 | - 2A8336772A36DEB07525BA2F /* [CP] Check Pods Manifest.lock */ = { | |
| 348 | + C07FCC71144256C0D7D38641 /* [CP] Check Pods Manifest.lock */ = { | |
| 327 | 349 | isa = PBXShellScriptBuildPhase; |
| 328 | 350 | buildActionMask = 2147483647; |
| 329 | 351 | files = ( |
| ... | ... | @@ -338,14 +360,14 @@ |
| 338 | 360 | outputFileListPaths = ( |
| 339 | 361 | ); |
| 340 | 362 | outputPaths = ( |
| 341 | - "$(DERIVED_FILE_DIR)/Pods-CNLiveBMineModule_Example-checkManifestLockResult.txt", | |
| 363 | + "$(DERIVED_FILE_DIR)/Pods-CNLiveBMineModule_Tests-checkManifestLockResult.txt", | |
| 342 | 364 | ); |
| 343 | 365 | runOnlyForDeploymentPostprocessing = 0; |
| 344 | 366 | shellPath = /bin/sh; |
| 345 | 367 | 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"; |
| 346 | 368 | showEnvVarsInLog = 0; |
| 347 | 369 | }; |
| 348 | - 843173646D6321F7E65D9A65 /* [CP] Embed Pods Frameworks */ = { | |
| 370 | + CFF4ECA8383DD2C6DAD192A0 /* [CP] Embed Pods Frameworks */ = { | |
| 349 | 371 | isa = PBXShellScriptBuildPhase; |
| 350 | 372 | buildActionMask = 2147483647; |
| 351 | 373 | files = ( |
| ... | ... | @@ -421,28 +443,6 @@ |
| 421 | 443 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveBMineModule_Example/Pods-CNLiveBMineModule_Example-frameworks.sh\"\n"; |
| 422 | 444 | showEnvVarsInLog = 0; |
| 423 | 445 | }; |
| 424 | - C07FCC71144256C0D7D38641 /* [CP] Check Pods Manifest.lock */ = { | |
| 425 | - isa = PBXShellScriptBuildPhase; | |
| 426 | - buildActionMask = 2147483647; | |
| 427 | - files = ( | |
| 428 | - ); | |
| 429 | - inputFileListPaths = ( | |
| 430 | - ); | |
| 431 | - inputPaths = ( | |
| 432 | - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | |
| 433 | - "${PODS_ROOT}/Manifest.lock", | |
| 434 | - ); | |
| 435 | - name = "[CP] Check Pods Manifest.lock"; | |
| 436 | - outputFileListPaths = ( | |
| 437 | - ); | |
| 438 | - outputPaths = ( | |
| 439 | - "$(DERIVED_FILE_DIR)/Pods-CNLiveBMineModule_Tests-checkManifestLockResult.txt", | |
| 440 | - ); | |
| 441 | - runOnlyForDeploymentPostprocessing = 0; | |
| 442 | - shellPath = /bin/sh; | |
| 443 | - 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"; | |
| 444 | - showEnvVarsInLog = 0; | |
| 445 | - }; | |
| 446 | 446 | /* End PBXShellScriptBuildPhase section */ |
| 447 | 447 | |
| 448 | 448 | /* Begin PBXSourcesBuildPhase section */ | ... | ... |