Commit a1f1ca918a8dad15cda7c1d2a3020153606b8aa5
1 parent
8f576444
个人资料认证开发
Showing
52 changed files
with
2518 additions
and
1 deletions
.gitignore
0 → 100644
| 1 | +# OS X | ||
| 2 | +.DS_Store | ||
| 3 | + | ||
| 4 | +# Xcode | ||
| 5 | +build/ | ||
| 6 | +Products/ | ||
| 7 | +*.pbxuser | ||
| 8 | +!default.pbxuser | ||
| 9 | +*.mode1v3 | ||
| 10 | +!default.mode1v3 | ||
| 11 | +*.mode2v3 | ||
| 12 | +!default.mode2v3 | ||
| 13 | +*.perspectivev3 | ||
| 14 | +!default.perspectivev3 | ||
| 15 | +xcuserdata/ | ||
| 16 | +*.xccheckout | ||
| 17 | +profile | ||
| 18 | +*.moved-aside | ||
| 19 | +DerivedData | ||
| 20 | +*.hmap | ||
| 21 | +*.ipa | ||
| 22 | + | ||
| 23 | +# Bundler | ||
| 24 | +.bundle | ||
| 25 | + | ||
| 26 | +# Add this line if you want to avoid checking in source code from Carthage dependencies. | ||
| 27 | +# Carthage/Checkouts | ||
| 28 | + | ||
| 29 | +Carthage/Build | ||
| 30 | + | ||
| 31 | +# We recommend against adding the Pods directory to your .gitignore. However | ||
| 32 | +# you should judge for yourself, the pros and cons are mentioned at: | ||
| 33 | +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control | ||
| 34 | +# | ||
| 35 | +# Note: if you ignore the Pods directory, make sure to uncomment | ||
| 36 | +# `pod install` in .travis.yml | ||
| 37 | +# | ||
| 38 | +# Pods/ |
.travis.yml
0 → 100644
| 1 | +# references: | ||
| 2 | +# * https://www.objc.io/issues/6-build-tools/travis-ci/ | ||
| 3 | +# * https://github.com/supermarin/xcpretty#usage | ||
| 4 | + | ||
| 5 | +osx_image: xcode7.3 | ||
| 6 | +language: objective-c | ||
| 7 | +# cache: cocoapods | ||
| 8 | +# podfile: Example/Podfile | ||
| 9 | +# before_install: | ||
| 10 | +# - gem install cocoapods # Since Travis is not always on latest version | ||
| 11 | +# - pod install --project-directory=Example | ||
| 12 | +script: | ||
| 13 | +- set -o pipefail && xcodebuild test -enableCodeCoverage YES -workspace Example/CNLiveBPersonalVerificationModule.xcworkspace -scheme CNLiveBPersonalVerificationModule-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty | ||
| 14 | +- pod lib lint |
CNLiveBPersonalVerificationModule.podspec
0 → 100644
| 1 | +# | ||
| 2 | +# Be sure to run `pod lib lint CNLiveBPersonalVerificationModule.podspec' to ensure this is a | ||
| 3 | +# valid spec before submitting. | ||
| 4 | +# | ||
| 5 | +# Any lines starting with a # are optional, but their use is encouraged | ||
| 6 | +# To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html | ||
| 7 | +# | ||
| 8 | + | ||
| 9 | +Pod::Spec.new do |s| | ||
| 10 | + s.name = 'CNLiveBPersonalVerificationModule' | ||
| 11 | + s.version = '0.0.1' | ||
| 12 | + s.summary = 'B端个人资料认证开发' | ||
| 13 | + | ||
| 14 | +# This description is used to generate tags and improve search results. | ||
| 15 | +# * Think: What does it do? Why did you write it? What is the focus? | ||
| 16 | +# * Try to keep it short, snappy and to the point. | ||
| 17 | +# * Write the description between the DESC delimiters below. | ||
| 18 | +# * Finally, don't worry about the indent, CocoaPods strips it! | ||
| 19 | + | ||
| 20 | + s.description = <<-DESC | ||
| 21 | +TODO: Add long description of the pod here. | ||
| 22 | + DESC | ||
| 23 | + | ||
| 24 | + s.homepage = 'http://bj.gitlab.cnlive.com/ios-team/CNLiveBPersonalVerificationModule' | ||
| 25 | + # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' | ||
| 26 | + s.license = { :type => 'MIT', :file => 'LICENSE' } | ||
| 27 | + s.author = { 'dawanzi' => '1427945373@qq.com' } | ||
| 28 | + s.source = { :git => 'http://bj.gitlab.cnlive.com/ios-team/CNLiveBPersonalVerificationModule.git', :tag => s.version.to_s } | ||
| 29 | + # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>' | ||
| 30 | + | ||
| 31 | + s.ios.deployment_target = '9.0' | ||
| 32 | + | ||
| 33 | +# s.source_files = 'CNLiveBPersonalVerificationModule/Classes/**/*' | ||
| 34 | +s.subspec 'Controller' do |controller| | ||
| 35 | + controller.source_files = 'CNLiveBPersonalVerificationModule/Classes/Controller/*.{h,m}' | ||
| 36 | +# controller.dependency 'CNLiveBPersonalVerificationModule/ViewModel' | ||
| 37 | +# controller.dependency 'CNLiveBPersonalVerificationModule/Model' | ||
| 38 | + controller.dependency 'CNLiveBPersonalVerificationModule/View' | ||
| 39 | +end | ||
| 40 | +s.subspec 'View' do |view| | ||
| 41 | + view.source_files = 'CNLiveBPersonalVerificationModule/Classes/View/*.{h,m}' | ||
| 42 | + view.dependency 'CNLiveBPersonalVerificationModule/ViewModel' | ||
| 43 | + view.dependency 'CNLiveBPersonalVerificationModule/Model' | ||
| 44 | +end | ||
| 45 | +s.subspec 'Model' do |model| | ||
| 46 | + model.source_files = 'CNLiveBPersonalVerificationModule/Classes/Model/*.{h,m}' | ||
| 47 | +end | ||
| 48 | +s.subspec 'ViewModel' do |viewModel| | ||
| 49 | + viewModel.source_files = 'CNLiveBPersonalVerificationModule/Classes/ViewModel/*.{h,m}' | ||
| 50 | +end | ||
| 51 | +s.dependency 'CNLiveTripartiteManagement/Masonry' | ||
| 52 | +s.dependency 'CNLiveTripartiteManagement/QMUIKit' | ||
| 53 | +s.dependency 'CNLiveTripartiteManagement/MJExtension' | ||
| 54 | +s.dependency 'CNLiveTripartiteManagement/SDWebImage' | ||
| 55 | +s.dependency 'CNLiveTripartiteManagement/MJRefresh' | ||
| 56 | +#基础库 | ||
| 57 | +s.dependency 'CNLiveBaseKit' | ||
| 58 | +#基础类目 | ||
| 59 | +s.dependency 'CNLiveCommonCategory' | ||
| 60 | +#基础UI | ||
| 61 | +s.dependency 'CNLiveCustomUI' | ||
| 62 | +#用户库 | ||
| 63 | + s.dependency 'CNLiveUserManagement' | ||
| 64 | + #网络请求 | ||
| 65 | + s.dependency 'CNLiveRequestBastKit' | ||
| 66 | +s.resource_bundles = { | ||
| 67 | + 'CNLiveBPersonalVerificationModule' => ['CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle'] | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | + # s.public_header_files = 'Pod/Classes/**/*.h' | ||
| 71 | + s.frameworks = 'UIKit', 'Foundation' | ||
| 72 | + # s.dependency 'AFNetworking', '~> 2.3' | ||
| 73 | +end |
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/add@2x.png
0 → 100644
476 Bytes
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/add@3x.png
0 → 100644
722 Bytes
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/add_jigou@2x.png
0 → 100644
418 Bytes
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/add_jigou@3x.png
0 → 100644
771 Bytes
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/bitian@2x.png
0 → 100644
672 Bytes
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/bitian@3x.png
0 → 100644
1.11 KB
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/delete-icon@2x.png
0 → 100644
1.89 KB
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/delete-icon@3x.png
0 → 100644
4.04 KB
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/delete@2x.png
0 → 100644
814 Bytes
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/delete@3x.png
0 → 100644
1.31 KB
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/xinxi@2x.png
0 → 100644
909 Bytes
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/xinxi@3x.png
0 → 100644
1.54 KB
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/xuanze@2x.png
0 → 100644
563 Bytes
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/xuanze@3x.png
0 → 100644
914 Bytes
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/xzjg@2x.png
0 → 100644
1.16 KB
CNLiveBPersonalVerificationModule/Assets/CNLiveBPersonalVerificationModule.bundle/xzjg@3x.png
0 → 100644
2.27 KB
CNLiveBPersonalVerificationModule/Classes/Controller/CNBPersonalVerificationController.h
0 → 100644
| 1 | +// | ||
| 2 | +// CNBPersonalVerificationController.h | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/7. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import <UIKit/UIKit.h> | ||
| 9 | + | ||
| 10 | +NS_ASSUME_NONNULL_BEGIN | ||
| 11 | + | ||
| 12 | +@interface CNBPersonalVerificationController : UIViewController | ||
| 13 | + | ||
| 14 | +@end | ||
| 15 | + | ||
| 16 | +NS_ASSUME_NONNULL_END |
CNLiveBPersonalVerificationModule/Classes/Controller/CNBPersonalVerificationController.m
0 → 100644
| 1 | +// | ||
| 2 | +// CNBPersonalVerificationController.m | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/7. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import "CNBPersonalVerificationController.h" | ||
| 9 | +#import <QMUIKit/QMUIKit.h> | ||
| 10 | +#import "UIColor+CNLiveExtension.h" | ||
| 11 | +#import "CNLivePerAuthGetImage.h" | ||
| 12 | +#import <Masonry/Masonry.h> | ||
| 13 | +#import "CNLiveBaseKit.h" | ||
| 14 | +#import "CNBPersonalVerificationCell.h" | ||
| 15 | +#import "CNBPerAuthHeaderView.h" | ||
| 16 | +#import "CNBIdentifierModel.h" | ||
| 17 | +#import "MJExtension.h" | ||
| 18 | +#import "CNBPerAuthFooterTBView.h" | ||
| 19 | +#define CNBHeaderShowHeight 43 | ||
| 20 | +#define CNBAffiliationCellIdentifier @"CNBPersonalVerificationCell" | ||
| 21 | +#define CNBCircleGroupIdentifier @"CNBCircleGroupCell" | ||
| 22 | +#define CNBCircleAddGroupIdentifier @"CNBCircleAddGroupCell" | ||
| 23 | +#define CNBAccountGroupIdentifier @"CNBAccountGroupCell" | ||
| 24 | +#define CNBAddAccountGroupIdentifier @"CNBAddAccountGroupCell" | ||
| 25 | +@interface CNBPersonalVerificationController ()<UITableViewDataSource,UITableViewDelegate> | ||
| 26 | +@property (nonatomic, strong) QMUIButton *promptBtn; //提示View | ||
| 27 | +@property (nonatomic, strong) UITableView *tableView; | ||
| 28 | +@property (nonatomic, strong) NSMutableArray *sectionArray ; //有几个组 //存放字符串 0 不可删除 1可删除 | ||
| 29 | +@property (nonatomic, strong) CNBPerAuthFooterTBView *footerTBView; | ||
| 30 | +@end | ||
| 31 | + | ||
| 32 | +@implementation CNBPersonalVerificationController | ||
| 33 | + | ||
| 34 | +- (void)viewDidLoad { | ||
| 35 | + [super viewDidLoad]; | ||
| 36 | + self.title = @"填写机构资料"; | ||
| 37 | + self.sectionArray = [NSMutableArray array]; | ||
| 38 | + [self addData:@"0" addSection:@"0"]; | ||
| 39 | + [self configUI]; | ||
| 40 | + [self.view addSubview:self.tableView]; | ||
| 41 | + [self.tableView reloadData]; | ||
| 42 | +} | ||
| 43 | +- (void)addData:(NSString *)isDelete addSection:(NSString *)addSection{ | ||
| 44 | + NSMutableArray *typeArray = [NSMutableArray array]; | ||
| 45 | + NSArray *array = @[ | ||
| 46 | + @{@"type":@"0",@"isDelete":@"0"}, | ||
| 47 | + @{@"type":@"1",@"isDelete":@"0"}, | ||
| 48 | + @{@"type":@"2",@"isDelete":@"0"}, | ||
| 49 | + @{@"type":@"3",@"isDelete":@"0"}, | ||
| 50 | + @{@"type":@"4",@"isDelete":@"0"} | ||
| 51 | + ]; | ||
| 52 | + for (NSDictionary *dic in array) { | ||
| 53 | + CNBTypeModel *model = [CNBTypeModel mj_objectWithKeyValues:dic]; | ||
| 54 | + [typeArray addObject:model]; | ||
| 55 | + } | ||
| 56 | + NSArray *sectionArray = @[ | ||
| 57 | + @{@"isDelete":isDelete,@"addSection":addSection,@"typeArray":typeArray}, | ||
| 58 | + ]; | ||
| 59 | + for (NSDictionary *dic in sectionArray) { | ||
| 60 | + CNBAddSectionModel *model = [CNBAddSectionModel mj_objectWithKeyValues:dic]; | ||
| 61 | + [self.sectionArray addObject:model]; | ||
| 62 | + } | ||
| 63 | +} | ||
| 64 | +#pragma mark - init | ||
| 65 | +- (void)configUI { | ||
| 66 | + __weak typeof(self) weakSelf = self; | ||
| 67 | + [self.view addSubview:self.promptBtn]; | ||
| 68 | + [_promptBtn mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 69 | + make.left.right.mas_equalTo (weakSelf.view); | ||
| 70 | + make.top.mas_equalTo(kNavigationBarHeight); | ||
| 71 | + make.height.mas_equalTo(43); | ||
| 72 | + }]; | ||
| 73 | +} | ||
| 74 | +#pragma mark - tableDelegateAndtableDataSource | ||
| 75 | +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { | ||
| 76 | + return self.sectionArray.count; | ||
| 77 | +} | ||
| 78 | +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { | ||
| 79 | + CNBAddSectionModel *model = self.sectionArray[section]; | ||
| 80 | + return model.typeArray.count; | ||
| 81 | +} | ||
| 82 | +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { | ||
| 83 | + CNBAddSectionModel *sectionModel = self.sectionArray[indexPath.section]; | ||
| 84 | + CNBTypeModel *model = sectionModel.typeArray[indexPath.row]; | ||
| 85 | + __weak typeof(self) weakSelf = self; | ||
| 86 | + if ([model.type isEqualToString:@"0"]) { | ||
| 87 | + CNBPersonalVerificationCell *cell = [tableView dequeueReusableCellWithIdentifier:CNBAffiliationCellIdentifier]; | ||
| 88 | + if (!cell) { | ||
| 89 | + cell = [[CNBPersonalVerificationCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CNBAffiliationCellIdentifier]; | ||
| 90 | + } | ||
| 91 | + return cell; | ||
| 92 | + }else if ([model.type isEqualToString:@"1"]) { | ||
| 93 | + CNBCircleGroupCell *circleCell = [tableView dequeueReusableCellWithIdentifier:CNBCircleGroupIdentifier]; | ||
| 94 | + if (!circleCell) { | ||
| 95 | + circleCell = [[CNBCircleGroupCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CNBCircleGroupIdentifier]; | ||
| 96 | + } | ||
| 97 | + circleCell.typeModel = sectionModel.typeArray[indexPath.row]; | ||
| 98 | + __block NSMutableArray *typeArray = [NSMutableArray arrayWithArray:sectionModel.typeArray]; | ||
| 99 | + circleCell.circleDeleteBlock = ^{ | ||
| 100 | + [typeArray removeObjectAtIndex:indexPath.row]; | ||
| 101 | + sectionModel.typeArray = typeArray; | ||
| 102 | + [weakSelf.tableView reloadData]; | ||
| 103 | + }; | ||
| 104 | + return circleCell; | ||
| 105 | + }else if ([model.type isEqualToString:@"2"]) { | ||
| 106 | + CNBCircleAddGroupCell *circleAddCell = [tableView dequeueReusableCellWithIdentifier:CNBCircleAddGroupIdentifier]; | ||
| 107 | + if (!circleAddCell) { | ||
| 108 | + circleAddCell = [[CNBCircleAddGroupCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CNBCircleAddGroupIdentifier]; | ||
| 109 | + } | ||
| 110 | + __block NSMutableArray *circleArray = [NSMutableArray array]; | ||
| 111 | + __block NSMutableArray *typeArray = [NSMutableArray arrayWithArray:sectionModel.typeArray]; | ||
| 112 | + circleAddCell.addCircleGroupBlock = ^{ | ||
| 113 | + CNBTypeModel *addModel = [[CNBTypeModel alloc]init]; | ||
| 114 | + addModel.type = @"1"; | ||
| 115 | + addModel.isDelete = @"1"; | ||
| 116 | + for (CNBTypeModel *model in typeArray) { | ||
| 117 | + if ([model.type isEqualToString:@"1"]) { | ||
| 118 | + [circleArray addObject:model]; | ||
| 119 | + } | ||
| 120 | + } | ||
| 121 | + [typeArray insertObject:addModel atIndex:circleArray.count + 1]; | ||
| 122 | + sectionModel.typeArray = typeArray; | ||
| 123 | + [weakSelf.tableView reloadData]; | ||
| 124 | + }; | ||
| 125 | + return circleAddCell; | ||
| 126 | + }else if ([model.type isEqualToString:@"3"]) { | ||
| 127 | + CNBAccountGroupCell *accountCell = [tableView dequeueReusableCellWithIdentifier:CNBAccountGroupIdentifier]; | ||
| 128 | + if (!accountCell) { | ||
| 129 | + accountCell = [[CNBAccountGroupCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CNBAccountGroupIdentifier]; | ||
| 130 | + } | ||
| 131 | + __block NSMutableArray *accountTypeArr = [NSMutableArray arrayWithArray:sectionModel.typeArray]; | ||
| 132 | + __weak typeof(self) weakSelf = self; | ||
| 133 | + accountCell.accountTypeModel = sectionModel.typeArray[indexPath.row]; | ||
| 134 | + accountCell.accountDeleteBlock = ^{ | ||
| 135 | + [accountTypeArr removeObjectAtIndex:indexPath.row]; | ||
| 136 | + sectionModel.typeArray = accountTypeArr; | ||
| 137 | + [weakSelf.tableView reloadData]; | ||
| 138 | + }; | ||
| 139 | + return accountCell; | ||
| 140 | + }else if ([model.type isEqualToString:@"4"]) { | ||
| 141 | + CNBAddAccountGroupCell *addAccountCell = [tableView dequeueReusableCellWithIdentifier:CNBAddAccountGroupIdentifier]; | ||
| 142 | + if (!addAccountCell) { | ||
| 143 | + addAccountCell = [[CNBAddAccountGroupCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CNBAddAccountGroupIdentifier]; | ||
| 144 | + } | ||
| 145 | + __block NSMutableArray *addGroupArray = [NSMutableArray arrayWithArray:sectionModel.typeArray]; | ||
| 146 | + addAccountCell.addAccountGroupBlock = ^{ | ||
| 147 | + CNBTypeModel *model = [[CNBTypeModel alloc]init]; | ||
| 148 | + model.type = @"3"; | ||
| 149 | + model.isDelete = @"1"; | ||
| 150 | + [addGroupArray insertObject:model atIndex:addGroupArray.count - 1]; | ||
| 151 | + sectionModel.typeArray = addGroupArray; | ||
| 152 | + [weakSelf.tableView reloadData]; | ||
| 153 | + }; | ||
| 154 | + | ||
| 155 | + return addAccountCell; | ||
| 156 | + } | ||
| 157 | + else { | ||
| 158 | + return nil; | ||
| 159 | + } | ||
| 160 | +} | ||
| 161 | +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { | ||
| 162 | + CNBPerAuthHeaderView *headerView = [[CNBPerAuthHeaderView alloc]init]; | ||
| 163 | + headerView.frame = CGRectMake(0, 0, KScreenWidth, 45); | ||
| 164 | + headerView.sectionModel = self.sectionArray[section]; | ||
| 165 | + headerView.backgroundColor = [UIColor whiteColor]; | ||
| 166 | + __weak typeof(self) weakSelf = self; | ||
| 167 | + headerView.deleteInstitutionsBlock = ^{ | ||
| 168 | + [weakSelf.sectionArray removeObjectAtIndex:section]; | ||
| 169 | + [weakSelf.tableView reloadData]; | ||
| 170 | + }; | ||
| 171 | + return headerView; | ||
| 172 | +} | ||
| 173 | +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { | ||
| 174 | + return 45; | ||
| 175 | +} | ||
| 176 | +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { | ||
| 177 | + CNBAddSectionModel *sectionModel = self.sectionArray[indexPath.section]; | ||
| 178 | + CNBTypeModel *model = sectionModel.typeArray[indexPath.row]; | ||
| 179 | + if ([model.type isEqualToString:@"0"]) { | ||
| 180 | + return 45; | ||
| 181 | + }else if ([model.type isEqualToString:@"1"]) { | ||
| 182 | + return 92; | ||
| 183 | + }else if ([model.type isEqualToString:@"2"]){ | ||
| 184 | + return 52; | ||
| 185 | + }else if ([model.type isEqualToString:@"3"]) { | ||
| 186 | + return 92; | ||
| 187 | + }else if ([model.type isEqualToString:@"4"]) { | ||
| 188 | + return 52; | ||
| 189 | + }else { | ||
| 190 | + return 0.01; | ||
| 191 | + } | ||
| 192 | +} | ||
| 193 | +#pragma mark - lazy | ||
| 194 | +- (QMUIButton *)promptBtn { | ||
| 195 | + if (!_promptBtn) { | ||
| 196 | + _promptBtn = [[QMUIButton alloc]init]; | ||
| 197 | + _promptBtn.backgroundColor = CNLiveColorWithHexString(@"48A7F9"); | ||
| 198 | + [_promptBtn setTitle:@"请选择在网家家平台上与您相关的所有机构公司信息" forState:UIControlStateNormal]; | ||
| 199 | + [ _promptBtn setImage:[CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"xinxi" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]] forState:UIControlStateNormal]; | ||
| 200 | + _promptBtn.imagePosition = QMUIButtonImagePositionRight; | ||
| 201 | + _promptBtn.spacingBetweenImageAndTitle = 13; | ||
| 202 | + _promptBtn.titleLabel.font = [UIFont systemFontOfSize:14]; | ||
| 203 | + [_promptBtn setTitleColor:CNLiveColorWithHexString(@"FFFFFF") forState:UIControlStateNormal]; | ||
| 204 | + _promptBtn.userInteractionEnabled = NO; | ||
| 205 | + } | ||
| 206 | + return _promptBtn; | ||
| 207 | +} | ||
| 208 | +- (UITableView *)tableView { | ||
| 209 | + if (!_tableView) { | ||
| 210 | + _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, kNavigationBarHeight + CNBHeaderShowHeight, KScreenWidth, KScreenHeight - kNavigationBarHeight - CNBHeaderShowHeight) style:UITableViewStyleGrouped]; | ||
| 211 | + _tableView.delegate = self; | ||
| 212 | + _tableView.dataSource = self; | ||
| 213 | + _tableView.backgroundColor = CNLiveColorWithHexString(@"F7F7F7"); | ||
| 214 | + _footerTBView = [[CNBPerAuthFooterTBView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 168)]; | ||
| 215 | + _footerTBView.backgroundColor = CNLiveColorWithHexString(@"F7F7F7"); | ||
| 216 | + __weak typeof(self) weakSelf = self; | ||
| 217 | + _footerTBView.addInstitutionsBlock = ^{ | ||
| 218 | +// CNBAddSectionModel *model = [[CNBAddSectionModel alloc]init]; | ||
| 219 | +// model.isDelete = @"1"; | ||
| 220 | +// model.addSection = weakSelf.sectionArray.count; | ||
| 221 | +// [weakSelf.sectionArray addObject:model]; | ||
| 222 | + [weakSelf addData:@"1" addSection:[NSString stringWithFormat:@"%ld",weakSelf.sectionArray.count]]; | ||
| 223 | + [weakSelf.tableView reloadData]; | ||
| 224 | + }; | ||
| 225 | + _tableView.tableFooterView = _footerTBView; | ||
| 226 | + _tableView.tableHeaderView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 0, 0.1)]; | ||
| 227 | + if (@available(iOS 11.0, *)) { | ||
| 228 | + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; | ||
| 229 | + | ||
| 230 | + } else { | ||
| 231 | + self.automaticallyAdjustsScrollViewInsets = NO; | ||
| 232 | + } | ||
| 233 | + } | ||
| 234 | + return _tableView; | ||
| 235 | +} | ||
| 236 | +//- (CNBPerAuthFooterTBView *)footerTBView { | ||
| 237 | +// if (!_footerTBView) { | ||
| 238 | +// _footerTBView = [[CNBPerAuthFooterTBView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 168)]; | ||
| 239 | +// _footerTBView.backgroundColor = CNLiveColorWithHexString(@"F7F7F7"); | ||
| 240 | +// } | ||
| 241 | +// return _footerTBView; | ||
| 242 | +//} | ||
| 243 | + | ||
| 244 | +@end |
CNLiveBPersonalVerificationModule/Classes/Model/CNBIdentifierModel.h
0 → 100644
| 1 | +// | ||
| 2 | +// CNBIdentifierModel.h | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/9. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import <Foundation/Foundation.h> | ||
| 9 | +@class CNBTypeModel; | ||
| 10 | +NS_ASSUME_NONNULL_BEGIN | ||
| 11 | +//添加圈子等 | ||
| 12 | +@interface CNBTypeModel : NSObject | ||
| 13 | +@property (nonatomic, copy) NSString *type; //区分是什么 0是所属机构 1 您的圈子 2 添加圈子 3 相关子账号 4 添加子账号 | ||
| 14 | +@property (nonatomic, copy) NSString *isDelete; //是否可以删除 0 不可删除 1 可删除 | ||
| 15 | +@property (nonatomic, assign) NSInteger AddSection; //组 | ||
| 16 | +@property (nonatomic, assign) NSInteger addRow; | ||
| 17 | +@end | ||
| 18 | +//添加机构 | ||
| 19 | +@interface CNBAddSectionModel : NSObject | ||
| 20 | +@property (nonatomic, copy) NSString *isDelete; //是否可删除 00 不可删除 1 可删除 | ||
| 21 | +@property (nonatomic, assign) NSInteger addSection; //添加时所在组 | ||
| 22 | +@property (nonatomic, strong) NSMutableArray <CNBTypeModel *>*typeArray; //存放每种类型cell的数组 | ||
| 23 | +@end | ||
| 24 | + | ||
| 25 | +NS_ASSUME_NONNULL_END |
CNLiveBPersonalVerificationModule/Classes/Model/CNBIdentifierModel.m
0 → 100644
CNLiveBPersonalVerificationModule/Classes/View/CNBPerAuthFooterTBView.h
0 → 100644
| 1 | +// | ||
| 2 | +// CNBPerAuthFooterTBView.h | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/8. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import <UIKit/UIKit.h> | ||
| 9 | + | ||
| 10 | +NS_ASSUME_NONNULL_BEGIN | ||
| 11 | + | ||
| 12 | +@interface CNBPerAuthFooterTBView : UIView | ||
| 13 | +@property (nonatomic, copy) void (^addInstitutionsBlock) (void); | ||
| 14 | +@property (nonatomic, copy) void (^submitActionBlock)(void); | ||
| 15 | +@end | ||
| 16 | + | ||
| 17 | +NS_ASSUME_NONNULL_END |
CNLiveBPersonalVerificationModule/Classes/View/CNBPerAuthFooterTBView.m
0 → 100644
| 1 | +// | ||
| 2 | +// CNBPerAuthFooterTBView.m | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/8. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import "CNBPerAuthFooterTBView.h" | ||
| 9 | +#import <QMUIKit/QMUIKit.h> | ||
| 10 | +#import <Masonry/Masonry.h> | ||
| 11 | +#import "CNLivePerAuthGetImage.h" | ||
| 12 | +#import "UIColor+CNLiveExtension.h" | ||
| 13 | +@interface CNBPerAuthFooterTBView () | ||
| 14 | +@property (nonatomic, strong) UIView *containerView; | ||
| 15 | +@property (nonatomic, strong) UILabel *descLabel; | ||
| 16 | +@property (nonatomic, strong) QMUIButton *addBtn; | ||
| 17 | +@property (nonatomic, strong) QMUIButton *submitBtn; | ||
| 18 | +@end | ||
| 19 | + | ||
| 20 | +@implementation CNBPerAuthFooterTBView | ||
| 21 | + | ||
| 22 | +- (instancetype)initWithFrame:(CGRect)frame { | ||
| 23 | + if (self = [super initWithFrame:frame]) { | ||
| 24 | + [self configUI]; | ||
| 25 | + } | ||
| 26 | + return self; | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +#pragma mark - 配置UI | ||
| 30 | +- (void)configUI { | ||
| 31 | + [self addSubview:self.containerView]; | ||
| 32 | + [self.containerView addSubview:self.descLabel]; | ||
| 33 | + [self.containerView addSubview:self.addBtn]; | ||
| 34 | + [self addSubview:self.submitBtn]; | ||
| 35 | + [self addMasony]; | ||
| 36 | +} | ||
| 37 | +- (void)addMasony { | ||
| 38 | + __weak typeof(self) weakSelf = self; | ||
| 39 | + [_containerView mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 40 | + make.top.right.left.mas_equalTo(weakSelf); | ||
| 41 | + make.height.mas_equalTo(58); | ||
| 42 | + }]; | ||
| 43 | + [_addBtn mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 44 | + make.right.mas_equalTo(weakSelf.containerView.mas_right).offset(-15); | ||
| 45 | + make.centerY.mas_equalTo(weakSelf.containerView.mas_centerY); | ||
| 46 | + make.size.mas_equalTo(CGSizeMake(89, 28)); | ||
| 47 | + }]; | ||
| 48 | + [_descLabel mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 49 | + make.right.mas_equalTo(weakSelf.addBtn.mas_left).offset(-11); | ||
| 50 | + make.left.mas_equalTo(weakSelf.containerView).offset(30); | ||
| 51 | + make.centerY.mas_equalTo(weakSelf.containerView.mas_centerY); | ||
| 52 | + make.height.mas_equalTo(11); | ||
| 53 | + }]; | ||
| 54 | + [_submitBtn mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 55 | + make.left.mas_equalTo(weakSelf.mas_left).offset(51); | ||
| 56 | + make.right.mas_equalTo(weakSelf.mas_right).offset(-51); | ||
| 57 | + make.top.mas_equalTo(weakSelf.containerView.mas_bottom).offset(25); | ||
| 58 | + make.height.mas_equalTo(35); | ||
| 59 | + }]; | ||
| 60 | +} | ||
| 61 | +#pragma mark - Action | ||
| 62 | +#pragma mark - 添加机构 | ||
| 63 | +- (void)addBtnAction { | ||
| 64 | + if (self.addInstitutionsBlock) { | ||
| 65 | + self.addInstitutionsBlock(); | ||
| 66 | + } | ||
| 67 | +} | ||
| 68 | +#pragma mark - 提交 | ||
| 69 | +- (void)submitBtnAction { | ||
| 70 | + if (self.submitActionBlock) { | ||
| 71 | + self.submitActionBlock(); | ||
| 72 | + } | ||
| 73 | +} | ||
| 74 | +#pragma mark - lazy | ||
| 75 | +- (UIView *)containerView { | ||
| 76 | + if (!_containerView) { | ||
| 77 | + _containerView = [[UIView alloc]init]; | ||
| 78 | + _containerView.backgroundColor = [UIColor whiteColor]; | ||
| 79 | + } | ||
| 80 | + return _containerView; | ||
| 81 | +} | ||
| 82 | +- (UILabel *)descLabel { | ||
| 83 | + if (!_descLabel) { | ||
| 84 | + _descLabel = [[UILabel alloc]init]; | ||
| 85 | + _descLabel.textColor = CNLiveColorWithHexString(@"999999"); | ||
| 86 | + _descLabel.font = [UIFont systemFontOfSize:11]; | ||
| 87 | + _descLabel.numberOfLines = 1; | ||
| 88 | + _descLabel.textAlignment = NSTextAlignmentRight; | ||
| 89 | + _descLabel.text = @"如您有多个机构,可点击添加"; | ||
| 90 | + } | ||
| 91 | + return _descLabel; | ||
| 92 | +} | ||
| 93 | +- (QMUIButton *)addBtn { | ||
| 94 | + if (!_addBtn) { | ||
| 95 | + _addBtn = [[QMUIButton alloc]init]; | ||
| 96 | + [_addBtn setImage:[CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"add_jigou" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]] forState:UIControlStateNormal]; | ||
| 97 | + [_addBtn setTitle:@"添加机构" forState:UIControlStateNormal]; | ||
| 98 | + [_addBtn setTitleColor:CNLiveColorWithHexString(@"FFFFFF") forState:UIControlStateNormal]; | ||
| 99 | + _addBtn.titleLabel.font = [UIFont systemFontOfSize:14]; | ||
| 100 | + _addBtn.imagePosition = QMUIButtonImagePositionLeft; | ||
| 101 | + _addBtn.spacingBetweenImageAndTitle = 5; | ||
| 102 | + _addBtn.backgroundColor = CNLiveColorWithHexString(@"48A7F9"); | ||
| 103 | + _addBtn.layer.cornerRadius = 5; | ||
| 104 | + [_addBtn addTarget:self action:@selector(addBtnAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 105 | + } | ||
| 106 | + return _addBtn; | ||
| 107 | +} | ||
| 108 | + | ||
| 109 | +- (QMUIButton *)submitBtn { | ||
| 110 | + if (!_submitBtn) { | ||
| 111 | + _submitBtn = [[QMUIButton alloc]init]; | ||
| 112 | + [_submitBtn setTitle:@"提交" forState:UIControlStateNormal]; | ||
| 113 | + [_submitBtn setTitleColor: CNLiveColorWithHexString(@"FFFFFF") forState:UIControlStateNormal]; | ||
| 114 | + _submitBtn.backgroundColor = CNLiveColorWithHexString(@"4EABFD"); | ||
| 115 | + _submitBtn.layer.cornerRadius = 17.5; | ||
| 116 | + [_submitBtn addTarget:self action:@selector(submitBtnAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 117 | + } | ||
| 118 | + return _submitBtn; | ||
| 119 | +} | ||
| 120 | +@end |
CNLiveBPersonalVerificationModule/Classes/View/CNBPerAuthHeaderView.h
0 → 100644
| 1 | +// | ||
| 2 | +// CNBPerAuthHeaderView.h | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/8. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import <UIKit/UIKit.h> | ||
| 9 | +@class CNBAddSectionModel; | ||
| 10 | +NS_ASSUME_NONNULL_BEGIN | ||
| 11 | + | ||
| 12 | +@interface CNBPerAuthHeaderView : UIView | ||
| 13 | +@property (nonatomic, strong) CNBAddSectionModel *sectionModel; | ||
| 14 | +@property (nonatomic, copy) void (^deleteInstitutionsBlock) (void); | ||
| 15 | + | ||
| 16 | +@end | ||
| 17 | + | ||
| 18 | +NS_ASSUME_NONNULL_END |
CNLiveBPersonalVerificationModule/Classes/View/CNBPerAuthHeaderView.m
0 → 100644
| 1 | +// | ||
| 2 | +// CNBPerAuthHeaderView.m | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/8. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import "CNBPerAuthHeaderView.h" | ||
| 9 | +#import <QMUIKit/QMUIKit.h> | ||
| 10 | +#import "CNLivePerAuthGetImage.h" | ||
| 11 | +#import "UIColor+CNLiveExtension.h" | ||
| 12 | +#import <Masonry/Masonry.h> | ||
| 13 | +#import "CNBIdentifierModel.h" | ||
| 14 | +@interface CNBPerAuthHeaderView () | ||
| 15 | +@property (nonatomic, strong) QMUIButton *showBtn; | ||
| 16 | +@property (nonatomic, strong) QMUIButton *deleteBtn; | ||
| 17 | +@end | ||
| 18 | +@implementation CNBPerAuthHeaderView | ||
| 19 | + | ||
| 20 | +#pragma mark - init | ||
| 21 | +- (instancetype)initWithFrame:(CGRect)frame { | ||
| 22 | + self = [super initWithFrame:frame]; | ||
| 23 | + if (self) { | ||
| 24 | + [self configUI]; | ||
| 25 | + } | ||
| 26 | + return self; | ||
| 27 | +} | ||
| 28 | +#pragma mark - 配置UI | ||
| 29 | +- (void)configUI { | ||
| 30 | + [self addSubview:self.showBtn]; | ||
| 31 | + [self addSubview:self.deleteBtn]; | ||
| 32 | + __weak typeof(self) weakSelf = self; | ||
| 33 | + [_showBtn mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 34 | + make.left.mas_equalTo(weakSelf.mas_left).offset(10); | ||
| 35 | + make.top.mas_equalTo(weakSelf.mas_top).offset(15); | ||
| 36 | + make.bottom.mas_equalTo(weakSelf.mas_bottom).offset(-15); | ||
| 37 | + make.right.mas_equalTo(weakSelf.mas_right).offset(-40); | ||
| 38 | + }]; | ||
| 39 | + [_deleteBtn mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 40 | + make.right.mas_equalTo(weakSelf.mas_right).offset(-15); | ||
| 41 | + make.size.mas_equalTo(CGSizeMake(16.5, 18)); | ||
| 42 | + make.centerY.mas_equalTo(weakSelf.mas_centerY); | ||
| 43 | + }]; | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +#pragma mark - getterAndSetter | ||
| 47 | +- (void)setSectionModel:(CNBAddSectionModel *)sectionModel { | ||
| 48 | + _sectionModel = sectionModel; | ||
| 49 | + if ([sectionModel.isDelete isEqualToString:@"1"]) { | ||
| 50 | + self.deleteBtn.hidden = NO; | ||
| 51 | + }else { | ||
| 52 | + self.deleteBtn.hidden = YES; | ||
| 53 | + } | ||
| 54 | +} | ||
| 55 | +#pragma mark - Action | ||
| 56 | +- (void)deleteBtnAction { | ||
| 57 | + if (self.deleteInstitutionsBlock) { | ||
| 58 | + self.deleteInstitutionsBlock(); | ||
| 59 | + } | ||
| 60 | +} | ||
| 61 | + | ||
| 62 | +#pragma mark -lazy | ||
| 63 | + | ||
| 64 | +- (QMUIButton *)showBtn { | ||
| 65 | + if (!_showBtn) { | ||
| 66 | + _showBtn = [[QMUIButton alloc]init]; | ||
| 67 | + [_showBtn setImage:[CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"xzjg" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]] forState:UIControlStateNormal]; | ||
| 68 | + [_showBtn setTitle:@"选择您在网家家平台上的所属机构" forState:UIControlStateNormal]; | ||
| 69 | + [_showBtn setTitleColor:CNLiveColorWithHexString(@"333333") forState:UIControlStateNormal]; | ||
| 70 | + _showBtn.spacingBetweenImageAndTitle = 5; | ||
| 71 | + _showBtn.imagePosition = QMUIButtonImagePositionLeft; | ||
| 72 | + _showBtn.titleLabel.font = [UIFont systemFontOfSize:14]; | ||
| 73 | + _showBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; | ||
| 74 | + _showBtn.userInteractionEnabled = NO; | ||
| 75 | + } | ||
| 76 | + return _showBtn; | ||
| 77 | +} | ||
| 78 | +- (QMUIButton *)deleteBtn { | ||
| 79 | + if (!_deleteBtn) { | ||
| 80 | + _deleteBtn = [[QMUIButton alloc]init]; | ||
| 81 | + [_deleteBtn setImage:[CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"delete" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]] forState:UIControlStateNormal]; | ||
| 82 | + [_deleteBtn addTarget:self action:@selector(deleteBtnAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 83 | + _deleteBtn.hidden = YES; | ||
| 84 | + } | ||
| 85 | + return _deleteBtn; | ||
| 86 | +} | ||
| 87 | +@end |
CNLiveBPersonalVerificationModule/Classes/View/CNBPersonalVerificationCell.h
0 → 100644
| 1 | +// | ||
| 2 | +// CNBPersonalVerificationCell.h | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/6. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import <UIKit/UIKit.h> | ||
| 9 | +@class CNBTypeModel; | ||
| 10 | +NS_ASSUME_NONNULL_BEGIN | ||
| 11 | +//所属机构 | ||
| 12 | +@interface CNBPersonalVerificationCell : UITableViewCell | ||
| 13 | + | ||
| 14 | +@end | ||
| 15 | +//您的圈子和圈子群组 | ||
| 16 | +@interface CNBCircleGroupCell : UITableViewCell | ||
| 17 | +@property (nonatomic, strong) CNBTypeModel *typeModel; | ||
| 18 | +@property (nonatomic, copy) void (^circleDeleteBlock) (void); | ||
| 19 | +@end | ||
| 20 | +//添加圈子 | ||
| 21 | +@interface CNBCircleAddGroupCell : UITableViewCell | ||
| 22 | +@property (nonatomic, copy) void (^addCircleGroupBlock)(void); | ||
| 23 | + | ||
| 24 | +@end | ||
| 25 | +//相关账号 | ||
| 26 | +@interface CNBAccountGroupCell : UITableViewCell | ||
| 27 | +@property (nonatomic, strong) CNBTypeModel *accountTypeModel; | ||
| 28 | +@property (nonatomic, copy) void (^accountDeleteBlock) (void); | ||
| 29 | +@end | ||
| 30 | +//添加子账号 | ||
| 31 | + | ||
| 32 | +@interface CNBAddAccountGroupCell : UITableViewCell | ||
| 33 | +@property (nonatomic, copy) void (^addAccountGroupBlock) (void); | ||
| 34 | + | ||
| 35 | +@end | ||
| 36 | +NS_ASSUME_NONNULL_END |
CNLiveBPersonalVerificationModule/Classes/View/CNBPersonalVerificationCell.m
0 → 100644
| 1 | +// | ||
| 2 | +// CNBPersonalVerificationCell.m | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/6. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import "CNBPersonalVerificationCell.h" | ||
| 9 | +#import <Masonry/Masonry.h> | ||
| 10 | +#import "CNLivePerAuthGetImage.h" | ||
| 11 | +#import "UIColor+CNLiveExtension.h" | ||
| 12 | +#import "CNLiveBaseKit.h" | ||
| 13 | +#import <QMUIKit/QMUIKit.h> | ||
| 14 | +#import "CNBIdentifierModel.h" | ||
| 15 | +@interface CNBPersonalVerificationCell ()<UITextFieldDelegate> | ||
| 16 | +@property (nonatomic, strong) UIImageView *logoImageV; //是不是必须的标识 | ||
| 17 | +@property (nonatomic, strong) UILabel *titleLabel; //标题 | ||
| 18 | +//@property (nonatomic, strong) UIView *containerView; | ||
| 19 | +@property (nonatomic, strong) UITextField *textField; | ||
| 20 | +@property (nonatomic, strong) UIButton *rightBtn; | ||
| 21 | +@end | ||
| 22 | +#pragma mark - 所属机构 | ||
| 23 | +@implementation CNBPersonalVerificationCell | ||
| 24 | + | ||
| 25 | +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { | ||
| 26 | + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; | ||
| 27 | + if (self) { | ||
| 28 | + self.selectionStyle = UITableViewCellSelectionStyleNone; | ||
| 29 | + [self configUI]; | ||
| 30 | + } | ||
| 31 | + return self; | ||
| 32 | +} | ||
| 33 | +#pragma mark - 配置UI | ||
| 34 | +- (void)configUI { | ||
| 35 | + [self.contentView addSubview:self.logoImageV]; | ||
| 36 | + [self.contentView addSubview:self.titleLabel]; | ||
| 37 | + [self.contentView addSubview:self.textField]; | ||
| 38 | + [self addMasony]; | ||
| 39 | +} | ||
| 40 | +#pragma mark - 添加约束 | ||
| 41 | +- (void)addMasony { | ||
| 42 | + __weak typeof(self) weakSelf = self; | ||
| 43 | + [_logoImageV mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 44 | + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset(10); | ||
| 45 | + make.centerY.mas_equalTo(weakSelf.contentView.mas_centerY); | ||
| 46 | + make.size.mas_equalTo(CGSizeMake(7, 8)); | ||
| 47 | + }]; | ||
| 48 | + [_titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 49 | + make.left.mas_equalTo(weakSelf.logoImageV.mas_right).offset(4.5); | ||
| 50 | + make.centerY.mas_equalTo(weakSelf.contentView.mas_centerY); | ||
| 51 | + make.size.mas_equalTo(CGSizeMake(100, 12)); | ||
| 52 | + }]; | ||
| 53 | + [_textField mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 54 | + make.left.mas_equalTo(weakSelf.titleLabel.mas_right).offset(8); | ||
| 55 | + make.centerY.mas_equalTo(weakSelf.contentView.mas_centerY); | ||
| 56 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-16); | ||
| 57 | + make.height.mas_equalTo(28); | ||
| 58 | + }]; | ||
| 59 | +} | ||
| 60 | +#pragma mark - Action | ||
| 61 | +- (void)rightBtnAction { | ||
| 62 | + | ||
| 63 | +} | ||
| 64 | +#pragma mark -lazy | ||
| 65 | +- (UIImageView *)logoImageV { | ||
| 66 | + if (!_logoImageV) { | ||
| 67 | + _logoImageV = [[UIImageView alloc]init]; | ||
| 68 | + _logoImageV.image = [CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"bitian" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]]; | ||
| 69 | + _logoImageV.contentMode = UIViewContentModeScaleAspectFit; | ||
| 70 | + } | ||
| 71 | + return _logoImageV; | ||
| 72 | +} | ||
| 73 | +- (UILabel *)titleLabel { | ||
| 74 | + if (!_titleLabel) { | ||
| 75 | + _titleLabel = [[UILabel alloc]init]; | ||
| 76 | + _titleLabel.textColor = CNLiveColorWithHexString(@"333333"); | ||
| 77 | + _titleLabel.font = [UIFont systemFontOfSize:12]; | ||
| 78 | + _titleLabel.textAlignment = NSTextAlignmentLeft; | ||
| 79 | + _titleLabel.numberOfLines = 1; | ||
| 80 | + _titleLabel.text = @"所属机构 (主账号)"; | ||
| 81 | + } | ||
| 82 | + return _titleLabel; | ||
| 83 | +} | ||
| 84 | +- (UITextField *)textField { | ||
| 85 | + if (!_textField) { | ||
| 86 | + _textField = [[UITextField alloc]init]; | ||
| 87 | + _textField.textColor = CNLiveColorWithHexString(@"333333"); | ||
| 88 | + _textField.font = [UIFont systemFontOfSize:12]; | ||
| 89 | + _textField.placeholder = @"请选择您所属的机构"; | ||
| 90 | + _textField.layer.borderWidth = 0.5; | ||
| 91 | + _textField.layer.borderColor = CNLiveColorWithHexString(@"C1C1C1").CGColor; | ||
| 92 | + _textField.layer.cornerRadius = 5; | ||
| 93 | + _textField.delegate = self; | ||
| 94 | + UIButton *rightBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 6.5, 12)]; | ||
| 95 | + [rightBtn setImage:[CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"xuanze" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]] forState:UIControlStateNormal]; | ||
| 96 | + [rightBtn addTarget:self action:@selector(rightBtnAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 97 | + _textField.rightView = rightBtn; | ||
| 98 | + _textField.rightViewMode = UITextFieldViewModeAlways; | ||
| 99 | + } | ||
| 100 | + return _textField; | ||
| 101 | +} | ||
| 102 | + | ||
| 103 | +@end | ||
| 104 | +#pragma mark - 圈子和圈子群组 | ||
| 105 | +@interface CNBCircleGroupCell () | ||
| 106 | +@property (nonatomic, strong) UILabel *circleLabel; //圈子 | ||
| 107 | +@property (nonatomic, strong) UITextField *circleTextField;//圈子TF | ||
| 108 | +@property (nonatomic, strong) UILabel *groupLabel; //群组 | ||
| 109 | +@property (nonatomic, strong) UITextField *groupTextField; //群组TF | ||
| 110 | +@property (nonatomic, strong) UIButton *deleteBtn; //删除 | ||
| 111 | +@end | ||
| 112 | + | ||
| 113 | +@implementation CNBCircleGroupCell | ||
| 114 | +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { | ||
| 115 | + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; | ||
| 116 | + if (self) { | ||
| 117 | + self.selectionStyle = UITableViewCellSelectionStyleNone; | ||
| 118 | + [self configUI]; | ||
| 119 | + } | ||
| 120 | + return self; | ||
| 121 | +} | ||
| 122 | +#pragma mark - 配置UI | ||
| 123 | +- (void)configUI { | ||
| 124 | + [self.contentView addSubview:self.circleLabel]; | ||
| 125 | + [self.contentView addSubview:self.circleTextField]; | ||
| 126 | + [self.contentView addSubview:self.groupLabel]; | ||
| 127 | + [self.contentView addSubview:self.groupTextField]; | ||
| 128 | + [self addMasony]; | ||
| 129 | +} | ||
| 130 | +- (void)addMasony { | ||
| 131 | + __weak typeof(self) weakSelf = self; | ||
| 132 | + [_circleLabel mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 133 | + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset (21.5); | ||
| 134 | + make.top.mas_equalTo(weakSelf.contentView.mas_top).offset(20); | ||
| 135 | + make.size.mas_equalTo(CGSizeMake(100, 12)); | ||
| 136 | + }]; | ||
| 137 | + [_circleTextField mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 138 | + make.left.mas_equalTo(weakSelf.circleLabel.mas_right).offset(8); | ||
| 139 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-16); | ||
| 140 | + make.top.mas_equalTo(weakSelf.contentView.mas_top).offset(12); | ||
| 141 | + make.height.mas_equalTo(28); | ||
| 142 | + }]; | ||
| 143 | + [_groupLabel mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 144 | + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset (21.5); | ||
| 145 | + make.bottom.mas_equalTo(weakSelf.contentView.mas_bottom).offset(-20); | ||
| 146 | + make.size.mas_equalTo(CGSizeMake(100, 12)); | ||
| 147 | + }]; | ||
| 148 | + [_groupTextField mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 149 | + make.left.mas_equalTo(weakSelf.groupLabel.mas_right).offset(8); | ||
| 150 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-16); | ||
| 151 | + make.bottom.mas_equalTo(weakSelf.contentView.mas_bottom).offset(-12); | ||
| 152 | + make.height.mas_equalTo(28); | ||
| 153 | + }]; | ||
| 154 | +} | ||
| 155 | +#pragma mark - 显示删除按钮 | ||
| 156 | +- (void)showDeleteBtn { | ||
| 157 | + __weak typeof(self) weakSelf = self; | ||
| 158 | + [self.contentView addSubview:self.deleteBtn]; | ||
| 159 | + self.deleteBtn.hidden = NO; | ||
| 160 | + [_deleteBtn mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 161 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-15); | ||
| 162 | + make.centerY.mas_equalTo(weakSelf.contentView.mas_centerY); | ||
| 163 | + make.size.mas_equalTo(CGSizeMake(20, 20)); | ||
| 164 | + }]; | ||
| 165 | + [_circleTextField mas_updateConstraints:^(MASConstraintMaker *make) { | ||
| 166 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-43); | ||
| 167 | + }]; | ||
| 168 | + [_groupTextField mas_updateConstraints:^(MASConstraintMaker *make) { | ||
| 169 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-43); | ||
| 170 | + }]; | ||
| 171 | +} | ||
| 172 | +#pragma mark - getterAndSetter | ||
| 173 | +- (void)setTypeModel:(CNBTypeModel *)typeModel{ | ||
| 174 | + _typeModel = typeModel; | ||
| 175 | + if ([typeModel.type isEqualToString:@"1"]) { | ||
| 176 | + if ([typeModel.isDelete isEqualToString:@"1"]) { | ||
| 177 | + [self showDeleteBtn]; | ||
| 178 | + }else { | ||
| 179 | + [self.deleteBtn removeFromSuperview]; | ||
| 180 | + self.deleteBtn.hidden = YES; | ||
| 181 | + } | ||
| 182 | + } | ||
| 183 | + | ||
| 184 | +} | ||
| 185 | +#pragma mark - Action | ||
| 186 | +- (void)deleteBtnAction { | ||
| 187 | + if (self.circleDeleteBlock) { | ||
| 188 | + self.circleDeleteBlock(); | ||
| 189 | + } | ||
| 190 | +} | ||
| 191 | + | ||
| 192 | +#pragma mark - lazy | ||
| 193 | +- (UILabel *)circleLabel { | ||
| 194 | + if (!_circleLabel) { | ||
| 195 | + _circleLabel = [[UILabel alloc]init]; | ||
| 196 | + _circleLabel.textColor = CNLiveColorWithHexString(@"333333"); | ||
| 197 | + _circleLabel.font = [UIFont systemFontOfSize:12]; | ||
| 198 | + _circleLabel.textAlignment = NSTextAlignmentLeft; | ||
| 199 | + _circleLabel.numberOfLines = 1; | ||
| 200 | + _circleLabel.text = @"您的圈子 (子账号)"; | ||
| 201 | + } | ||
| 202 | + return _circleLabel; | ||
| 203 | +} | ||
| 204 | +- (UITextField *)circleTextField { | ||
| 205 | + if (!_circleTextField) { | ||
| 206 | + _circleTextField = [[UITextField alloc]init]; | ||
| 207 | + _circleTextField.textColor = CNLiveColorWithHexString(@"333333"); | ||
| 208 | + _circleTextField.placeholder = @"请选择您的圈子"; | ||
| 209 | + _circleTextField.layer.borderWidth = 0.5; | ||
| 210 | + _circleTextField.layer.borderColor = CNLiveColorWithHexString(@"C1C1C1").CGColor; | ||
| 211 | + _circleTextField.font = [UIFont systemFontOfSize:12]; | ||
| 212 | + _circleTextField.layer.cornerRadius = 5; | ||
| 213 | + } | ||
| 214 | + return _circleTextField; | ||
| 215 | +} | ||
| 216 | +- (UILabel *)groupLabel { | ||
| 217 | + if (!_groupLabel) { | ||
| 218 | + _groupLabel = [[UILabel alloc]init]; | ||
| 219 | + _groupLabel.textColor = CNLiveColorWithHexString(@"333333"); | ||
| 220 | + _groupLabel.font = [UIFont systemFontOfSize:12]; | ||
| 221 | + _groupLabel.textAlignment = NSTextAlignmentLeft; | ||
| 222 | + _groupLabel.numberOfLines = 1; | ||
| 223 | + _groupLabel.text = @"圈子群组 (子群组)"; | ||
| 224 | + } | ||
| 225 | + return _groupLabel; | ||
| 226 | +} | ||
| 227 | +- (UITextField *)groupTextField { | ||
| 228 | + if (!_groupTextField) { | ||
| 229 | + _groupTextField = [[UITextField alloc]init]; | ||
| 230 | + _groupTextField .textColor = CNLiveColorWithHexString(@"333333"); | ||
| 231 | + _groupTextField .placeholder = @"请选择圈子群组"; | ||
| 232 | + _groupTextField .layer.borderWidth = 0.5; | ||
| 233 | + _groupTextField .layer.borderColor = CNLiveColorWithHexString(@"C1C1C1").CGColor; | ||
| 234 | + _groupTextField .font = [UIFont systemFontOfSize:12]; | ||
| 235 | + _groupTextField .layer.cornerRadius = 5; | ||
| 236 | + } | ||
| 237 | + return _groupTextField; | ||
| 238 | +} | ||
| 239 | +- (UIButton *)deleteBtn { | ||
| 240 | + if (!_deleteBtn) { | ||
| 241 | + _deleteBtn = [[UIButton alloc]init]; | ||
| 242 | + [_deleteBtn setImage:[CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"delete-icon" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]] forState:UIControlStateNormal]; | ||
| 243 | + [_deleteBtn addTarget:self action:@selector(deleteBtnAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 244 | + } | ||
| 245 | + return _deleteBtn; | ||
| 246 | +} | ||
| 247 | +@end | ||
| 248 | +#pragma mark - 添加圈子 | ||
| 249 | +@interface CNBCircleAddGroupCell () | ||
| 250 | +@property (nonatomic, strong) UILabel *descLabel; | ||
| 251 | +@property (nonatomic, strong) QMUIButton *addBtn; //添加圈子 | ||
| 252 | +@end | ||
| 253 | + | ||
| 254 | +@implementation CNBCircleAddGroupCell | ||
| 255 | + | ||
| 256 | +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { | ||
| 257 | + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; | ||
| 258 | + if (self) { | ||
| 259 | + self.selectionStyle = UITableViewCellSelectionStyleNone; | ||
| 260 | + [self configUI]; | ||
| 261 | + } | ||
| 262 | + return self; | ||
| 263 | +} | ||
| 264 | +- (void)configUI { | ||
| 265 | + [self.contentView addSubview:self.addBtn]; | ||
| 266 | + [self.contentView addSubview:self.descLabel]; | ||
| 267 | + __weak typeof(self) weakSelf = self; | ||
| 268 | + [_addBtn mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 269 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-15); | ||
| 270 | + make.centerY.mas_equalTo(weakSelf.contentView.mas_centerY); | ||
| 271 | + make.size.mas_equalTo(CGSizeMake(90, 28)); | ||
| 272 | + }]; | ||
| 273 | + | ||
| 274 | + [_descLabel mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 275 | + make.right.mas_equalTo(weakSelf.addBtn.mas_left).offset(-11); | ||
| 276 | + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset(20); | ||
| 277 | + make.centerY.mas_equalTo(weakSelf.contentView.mas_centerY); | ||
| 278 | + make.height.mas_equalTo(12); | ||
| 279 | + }]; | ||
| 280 | +} | ||
| 281 | +#pragma mark -Action | ||
| 282 | +- (void)addBtnAction { | ||
| 283 | + if (self.addCircleGroupBlock) { | ||
| 284 | + self.addCircleGroupBlock(); | ||
| 285 | + } | ||
| 286 | +} | ||
| 287 | + | ||
| 288 | +#pragma mark -lazy | ||
| 289 | +- (UILabel *)descLabel { | ||
| 290 | + if (!_descLabel) { | ||
| 291 | + _descLabel = [[UILabel alloc]init]; | ||
| 292 | + _descLabel.textColor = CNLiveColorWithHexString(@"999999"); | ||
| 293 | + _descLabel.font = [UIFont systemFontOfSize:11]; | ||
| 294 | + _descLabel.numberOfLines = 1; | ||
| 295 | + _descLabel.textAlignment = NSTextAlignmentRight; | ||
| 296 | + _descLabel.text = @"如您有多个圈子,可点击添加"; | ||
| 297 | + } | ||
| 298 | + return _descLabel; | ||
| 299 | +} | ||
| 300 | +- (QMUIButton *)addBtn { | ||
| 301 | + if (!_addBtn) { | ||
| 302 | + _addBtn = [[QMUIButton alloc]init]; | ||
| 303 | + [_addBtn setImage:[CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"add" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]] forState:UIControlStateNormal]; | ||
| 304 | + [_addBtn setTitle:@"添加圈子" forState:UIControlStateNormal]; | ||
| 305 | + _addBtn.titleLabel.textColor = CNLiveColorWithHexString(@"48A7F9"); | ||
| 306 | + _addBtn.titleLabel.font = [UIFont systemFontOfSize:14]; | ||
| 307 | + _addBtn.imagePosition = QMUIButtonImagePositionLeft; | ||
| 308 | + _addBtn.spacingBetweenImageAndTitle = 5; | ||
| 309 | + _addBtn.layer.borderColor = CNLiveColorWithHexString(@"48A7F9").CGColor; | ||
| 310 | + _addBtn.layer.borderWidth = 1; | ||
| 311 | + _addBtn.layer.cornerRadius = 5; | ||
| 312 | + [_addBtn addTarget:self action:@selector(addBtnAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 313 | + } | ||
| 314 | + return _addBtn; | ||
| 315 | +} | ||
| 316 | +@end | ||
| 317 | +#pragma mark - 相关账号和相关群组 | ||
| 318 | +@interface CNBAccountGroupCell () | ||
| 319 | +@property (nonatomic, strong) UILabel *accountLabel; //圈子 | ||
| 320 | +@property (nonatomic, strong) UITextField *accountTextField;//圈子TF | ||
| 321 | +@property (nonatomic, strong) UILabel *relateGroupLabel; //群组 | ||
| 322 | +@property (nonatomic, strong) UITextField *relateGroupTextField; //群组TF | ||
| 323 | +@property (nonatomic, strong) UIButton *deleteBtn; //删除 | ||
| 324 | +@end | ||
| 325 | + | ||
| 326 | +@implementation CNBAccountGroupCell | ||
| 327 | +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { | ||
| 328 | + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; | ||
| 329 | + if (self) { | ||
| 330 | + self.selectionStyle = UITableViewCellSelectionStyleNone; | ||
| 331 | + [self configUI]; | ||
| 332 | + } | ||
| 333 | + return self; | ||
| 334 | +} | ||
| 335 | + | ||
| 336 | +#pragma mark - 配置UI | ||
| 337 | +- (void)configUI { | ||
| 338 | + [self.contentView addSubview:self.accountLabel]; | ||
| 339 | + [self.contentView addSubview:self.accountTextField]; | ||
| 340 | + [self.contentView addSubview:self.relateGroupLabel]; | ||
| 341 | + [self.contentView addSubview:self.relateGroupTextField]; | ||
| 342 | + [self addMasony]; | ||
| 343 | +} | ||
| 344 | +- (void)addMasony { | ||
| 345 | + __weak typeof(self) weakSelf = self; | ||
| 346 | + [_accountLabel mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 347 | + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset (21.5); | ||
| 348 | + make.top.mas_equalTo(weakSelf.contentView.mas_top).offset(20); | ||
| 349 | + make.size.mas_equalTo(CGSizeMake(100, 12)); | ||
| 350 | + }]; | ||
| 351 | + [_accountTextField mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 352 | + make.left.mas_equalTo(weakSelf.accountLabel.mas_right).offset(8); | ||
| 353 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-16); | ||
| 354 | + make.top.mas_equalTo(weakSelf.contentView.mas_top).offset(12); | ||
| 355 | + make.height.mas_equalTo(28); | ||
| 356 | + }]; | ||
| 357 | + [_relateGroupLabel mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 358 | + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset (21.5); | ||
| 359 | + make.bottom.mas_equalTo(weakSelf.contentView.mas_bottom).offset(-20); | ||
| 360 | + make.size.mas_equalTo(CGSizeMake(100, 12)); | ||
| 361 | + }]; | ||
| 362 | + [_relateGroupTextField mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 363 | + make.left.mas_equalTo(weakSelf.relateGroupLabel.mas_right).offset(8); | ||
| 364 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-16); | ||
| 365 | + make.bottom.mas_equalTo(weakSelf.contentView.mas_bottom).offset(-12); | ||
| 366 | + make.height.mas_equalTo(28); | ||
| 367 | + }]; | ||
| 368 | +} | ||
| 369 | +#pragma mark - 显示删除按钮 | ||
| 370 | +- (void)showDeleteBtn { | ||
| 371 | + __weak typeof(self) weakSelf = self; | ||
| 372 | + [self.contentView addSubview:self.deleteBtn]; | ||
| 373 | + self.deleteBtn.hidden = NO; | ||
| 374 | + [_deleteBtn mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 375 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-15); | ||
| 376 | + make.centerY.mas_equalTo(weakSelf.contentView.mas_centerY); | ||
| 377 | + make.size.mas_equalTo(CGSizeMake(20, 20)); | ||
| 378 | + }]; | ||
| 379 | + [_accountTextField mas_updateConstraints:^(MASConstraintMaker *make) { | ||
| 380 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-43); | ||
| 381 | + }]; | ||
| 382 | + [_relateGroupTextField mas_updateConstraints:^(MASConstraintMaker *make) { | ||
| 383 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-43); | ||
| 384 | + }]; | ||
| 385 | +} | ||
| 386 | +#pragma mark - getterAndSetter | ||
| 387 | +- (void)setAccountTypeModel:(CNBTypeModel *)accountTypeModel { | ||
| 388 | + _accountTypeModel = accountTypeModel; | ||
| 389 | + if ([accountTypeModel.type isEqualToString:@"3"]) { | ||
| 390 | + if ([accountTypeModel.isDelete isEqualToString:@"1"]) { | ||
| 391 | + [self showDeleteBtn]; | ||
| 392 | + }else{ | ||
| 393 | + [self.deleteBtn removeFromSuperview]; | ||
| 394 | + [self.deleteBtn setHidden:YES]; | ||
| 395 | + } | ||
| 396 | + } | ||
| 397 | +} | ||
| 398 | +#pragma mark - Action | ||
| 399 | +- (void)deleteBtnAction { | ||
| 400 | + if (self.accountDeleteBlock) { | ||
| 401 | + self.accountDeleteBlock(); | ||
| 402 | + } | ||
| 403 | +} | ||
| 404 | +#pragma mark -lazy | ||
| 405 | +- (UILabel *)accountLabel { | ||
| 406 | + if (!_accountLabel) { | ||
| 407 | + _accountLabel = [[UILabel alloc]init]; | ||
| 408 | + _accountLabel.textColor = CNLiveColorWithHexString(@"333333"); | ||
| 409 | + _accountLabel.font = [UIFont systemFontOfSize:12]; | ||
| 410 | + _accountLabel.textAlignment = NSTextAlignmentLeft; | ||
| 411 | + _accountLabel.numberOfLines = 1; | ||
| 412 | + _accountLabel.text = @"相关账号 (子账号)"; | ||
| 413 | + } | ||
| 414 | + return _accountLabel; | ||
| 415 | +} | ||
| 416 | +- (UITextField *)accountTextField { | ||
| 417 | + if (!_accountTextField) { | ||
| 418 | + _accountTextField= [[UITextField alloc]init]; | ||
| 419 | + _accountTextField.textColor = CNLiveColorWithHexString(@"333333"); | ||
| 420 | + _accountTextField.placeholder = @"请选择机构子账号"; | ||
| 421 | + _accountTextField.layer.borderWidth = 0.5; | ||
| 422 | + _accountTextField.layer.borderColor = CNLiveColorWithHexString(@"C1C1C1").CGColor; | ||
| 423 | + _accountTextField.font = [UIFont systemFontOfSize:12]; | ||
| 424 | + _accountTextField.layer.cornerRadius = 5; | ||
| 425 | + } | ||
| 426 | + return _accountTextField; | ||
| 427 | +} | ||
| 428 | +- (UILabel *)relateGroupLabel { | ||
| 429 | + if (!_relateGroupLabel) { | ||
| 430 | + _relateGroupLabel = [[UILabel alloc]init]; | ||
| 431 | + _relateGroupLabel.textColor = CNLiveColorWithHexString(@"333333"); | ||
| 432 | + _relateGroupLabel.font = [UIFont systemFontOfSize:12]; | ||
| 433 | + _relateGroupLabel.textAlignment = NSTextAlignmentLeft; | ||
| 434 | + _relateGroupLabel.numberOfLines = 1; | ||
| 435 | + _relateGroupLabel.text = @"相关群组 (子群组)"; | ||
| 436 | + } | ||
| 437 | + return _relateGroupLabel; | ||
| 438 | +} | ||
| 439 | +- (UITextField *)relateGroupTextField { | ||
| 440 | + if (!_relateGroupTextField) { | ||
| 441 | + _relateGroupTextField = [[UITextField alloc]init]; | ||
| 442 | + _relateGroupTextField.textColor = CNLiveColorWithHexString(@"333333"); | ||
| 443 | + _relateGroupTextField.placeholder = @"请选择圈子账号群组"; | ||
| 444 | + _relateGroupTextField.layer.borderWidth = 0.5; | ||
| 445 | + _relateGroupTextField.layer.borderColor = CNLiveColorWithHexString(@"C1C1C1").CGColor; | ||
| 446 | + _relateGroupTextField.font = [UIFont systemFontOfSize:12]; | ||
| 447 | + _relateGroupTextField.layer.cornerRadius = 5; | ||
| 448 | + } | ||
| 449 | + return _relateGroupTextField; | ||
| 450 | +} | ||
| 451 | +- (UIButton *)deleteBtn { | ||
| 452 | + if (!_deleteBtn) { | ||
| 453 | + _deleteBtn = [[UIButton alloc]init]; | ||
| 454 | + [_deleteBtn setImage:[CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"delete-icon" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]] forState:UIControlStateNormal]; | ||
| 455 | + [_deleteBtn addTarget:self action:@selector(deleteBtnAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 456 | + } | ||
| 457 | + return _deleteBtn; | ||
| 458 | +} | ||
| 459 | +@end | ||
| 460 | + | ||
| 461 | +#pragma mark - 添加子账号 | ||
| 462 | +@interface CNBAddAccountGroupCell () | ||
| 463 | +@property (nonatomic, strong) UILabel *descLabel; | ||
| 464 | +@property (nonatomic, strong) QMUIButton *addBtn; //添加子账号 | ||
| 465 | +@end | ||
| 466 | + | ||
| 467 | + | ||
| 468 | +@implementation CNBAddAccountGroupCell | ||
| 469 | + | ||
| 470 | +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { | ||
| 471 | + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; | ||
| 472 | + if (self) { | ||
| 473 | + self.selectionStyle = UITableViewCellSelectionStyleNone; | ||
| 474 | + [self configUI]; | ||
| 475 | + } | ||
| 476 | + return self; | ||
| 477 | +} | ||
| 478 | +- (void)configUI { | ||
| 479 | + [self.contentView addSubview:self.addBtn]; | ||
| 480 | + [self.contentView addSubview:self.descLabel]; | ||
| 481 | + __weak typeof(self) weakSelf = self; | ||
| 482 | + [_addBtn mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 483 | + make.right.mas_equalTo(weakSelf.contentView.mas_right).offset(-15); | ||
| 484 | + make.centerY.mas_equalTo(weakSelf.contentView.mas_centerY); | ||
| 485 | + make.size.mas_equalTo(CGSizeMake(103, 28)); | ||
| 486 | + }]; | ||
| 487 | + | ||
| 488 | + [_descLabel mas_makeConstraints:^(MASConstraintMaker *make) { | ||
| 489 | + make.right.mas_equalTo(weakSelf.addBtn.mas_left).offset(-11); | ||
| 490 | + make.left.mas_equalTo(weakSelf.contentView.mas_left).offset(20); | ||
| 491 | + make.centerY.mas_equalTo(weakSelf.contentView.mas_centerY); | ||
| 492 | + make.height.mas_equalTo(12); | ||
| 493 | + }]; | ||
| 494 | +} | ||
| 495 | +#pragma mark -Action | ||
| 496 | +- (void)addBtnAction { | ||
| 497 | + if (self.addAccountGroupBlock) { | ||
| 498 | + self.addAccountGroupBlock(); | ||
| 499 | + } | ||
| 500 | +} | ||
| 501 | + | ||
| 502 | +#pragma mark -lazy | ||
| 503 | +- (UILabel *)descLabel { | ||
| 504 | + if (!_descLabel) { | ||
| 505 | + _descLabel = [[UILabel alloc]init]; | ||
| 506 | + _descLabel.textColor = CNLiveColorWithHexString(@"999999"); | ||
| 507 | + _descLabel.font = [UIFont systemFontOfSize:11]; | ||
| 508 | + _descLabel.numberOfLines = 1; | ||
| 509 | + _descLabel.textAlignment = NSTextAlignmentRight; | ||
| 510 | + _descLabel.text = @"如您有多个子账号,可点击添加"; | ||
| 511 | + } | ||
| 512 | + return _descLabel; | ||
| 513 | +} | ||
| 514 | +- (QMUIButton *)addBtn { | ||
| 515 | + if (!_addBtn) { | ||
| 516 | + _addBtn = [[QMUIButton alloc]init]; | ||
| 517 | + [_addBtn setImage:[CNLivePerAuthGetImage cnLivePerAuth_getImageName:@"add" bundle:@"CNLiveBPersonalVerificationModule.bundle/CNLiveBPersonalVerificationModule" targetClass:[self class]] forState:UIControlStateNormal]; | ||
| 518 | + [_addBtn setTitle:@"添加子账号" forState:UIControlStateNormal]; | ||
| 519 | + _addBtn.titleLabel.textColor = CNLiveColorWithHexString(@"48A7F9"); | ||
| 520 | + _addBtn.titleLabel.font = [UIFont systemFontOfSize:14]; | ||
| 521 | + _addBtn.imagePosition = QMUIButtonImagePositionLeft; | ||
| 522 | + _addBtn.spacingBetweenImageAndTitle = 5; | ||
| 523 | + _addBtn.layer.borderColor = CNLiveColorWithHexString(@"48A7F9").CGColor; | ||
| 524 | + _addBtn.layer.borderWidth = 1; | ||
| 525 | + _addBtn.layer.cornerRadius = 5; | ||
| 526 | + [_addBtn addTarget:self action:@selector(addBtnAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 527 | + } | ||
| 528 | + return _addBtn; | ||
| 529 | +} | ||
| 530 | + | ||
| 531 | +@end |
CNLiveBPersonalVerificationModule/Classes/ViewModel/CNLivePerAuthGetImage.h
0 → 100644
| 1 | +// | ||
| 2 | +// CNLivePerAuthGetImage.h | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/6. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import <Foundation/Foundation.h> | ||
| 9 | + | ||
| 10 | +NS_ASSUME_NONNULL_BEGIN | ||
| 11 | + | ||
| 12 | +@interface CNLivePerAuthGetImage : NSObject | ||
| 13 | + | ||
| 14 | +/// 组件内获取图片 | ||
| 15 | +/// @param imageName 图片名字 | ||
| 16 | +/// @param bundlePath 图片所在bundle | ||
| 17 | +/// @param targetClass 与bundle在同一级别的class | ||
| 18 | ++ (UIImage *)cnLivePerAuth_getImageName:(NSString *)imageName bundle:(NSString *)bundlePath targetClass:(Class)targetClass; | ||
| 19 | +@end | ||
| 20 | + | ||
| 21 | +NS_ASSUME_NONNULL_END |
CNLiveBPersonalVerificationModule/Classes/ViewModel/CNLivePerAuthGetImage.m
0 → 100644
| 1 | +// | ||
| 2 | +// CNLivePerAuthGetImage.m | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by 殷巧娟 on 2020/4/6. | ||
| 6 | +// | ||
| 7 | + | ||
| 8 | +#import "CNLivePerAuthGetImage.h" | ||
| 9 | + | ||
| 10 | +@implementation CNLivePerAuthGetImage | ||
| 11 | +/** | ||
| 12 | + * 创建图片 | ||
| 13 | + * | ||
| 14 | + * @param imageName 图片名字 | ||
| 15 | + * @param bundlePath 图片所在的bundle名字 | ||
| 16 | + * @param targetClass 类和bundle的同级目录 | ||
| 17 | + * @return 返回UIImage | ||
| 18 | + */ | ||
| 19 | ++ (UIImage *)cnLivePerAuth_getImageName:(NSString *)imageName bundle:(NSString *)bundlePath targetClass:(Class)targetClass{ | ||
| 20 | + | ||
| 21 | + NSInteger scale = [[UIScreen mainScreen]scale]; | ||
| 22 | + NSBundle *bundle = [NSBundle bundleForClass:targetClass]; | ||
| 23 | + NSURL *url = [bundle URLForResource:bundlePath withExtension:@"bundle"]; | ||
| 24 | + | ||
| 25 | + if (!url) { | ||
| 26 | + return [UIImage new]; | ||
| 27 | + } | ||
| 28 | + NSBundle *targetBundle = [NSBundle bundleWithURL:url]; | ||
| 29 | + if (!targetBundle) { | ||
| 30 | + return [UIImage new]; | ||
| 31 | + } | ||
| 32 | + NSString *imgName = [NSString stringWithFormat:@"%@@%zdx.png",imageName,scale]; | ||
| 33 | + UIImage *image = [UIImage imageNamed:imgName inBundle:targetBundle compatibleWithTraitCollection:nil]; | ||
| 34 | + if (image) { | ||
| 35 | + return image; | ||
| 36 | + }else { | ||
| 37 | + if ([UIImage imageNamed:imgName inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil]) { | ||
| 38 | + return [UIImage imageNamed:imgName inBundle:[NSBundle mainBundle] compatibleWithTraitCollection:nil]; | ||
| 39 | + }else{ | ||
| 40 | + return [UIImage new]; | ||
| 41 | + } | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | +} | ||
| 45 | +@end |
Example/CNLiveBPersonalVerificationModule.xcodeproj/project.pbxproj
0 → 100644
| 1 | +// !$*UTF8*$! | ||
| 2 | +{ | ||
| 3 | + archiveVersion = 1; | ||
| 4 | + classes = { | ||
| 5 | + }; | ||
| 6 | + objectVersion = 46; | ||
| 7 | + objects = { | ||
| 8 | + | ||
| 9 | +/* Begin PBXBuildFile section */ | ||
| 10 | + 4E6D90B75C078198775B2788 /* Pods_CNLiveBPersonalVerificationModule_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7817A8D29BB68F50E5117819 /* Pods_CNLiveBPersonalVerificationModule_Tests.framework */; }; | ||
| 11 | + 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; }; | ||
| 12 | + 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.framework */; }; | ||
| 13 | + 6003F592195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; }; | ||
| 14 | + 6003F598195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F596195388D20070C39A /* InfoPlist.strings */; }; | ||
| 15 | + 6003F59A195388D20070C39A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F599195388D20070C39A /* main.m */; }; | ||
| 16 | + 6003F59E195388D20070C39A /* CNLIVEAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F59D195388D20070C39A /* CNLIVEAppDelegate.m */; }; | ||
| 17 | + 6003F5A7195388D20070C39A /* CNLIVEViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5A6195388D20070C39A /* CNLIVEViewController.m */; }; | ||
| 18 | + 6003F5A9195388D20070C39A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5A8195388D20070C39A /* Images.xcassets */; }; | ||
| 19 | + 6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F5AF195388D20070C39A /* XCTest.framework */; }; | ||
| 20 | + 6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; }; | ||
| 21 | + 6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F591195388D20070C39A /* UIKit.framework */; }; | ||
| 22 | + 6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5B8195388D20070C39A /* InfoPlist.strings */; }; | ||
| 23 | + 6003F5BC195388D20070C39A /* Tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5BB195388D20070C39A /* Tests.m */; }; | ||
| 24 | + 71719F9F1E33DC2100824A3D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 71719F9D1E33DC2100824A3D /* LaunchScreen.storyboard */; }; | ||
| 25 | + 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */; }; | ||
| 26 | + B9D618F281EA888D94759421 /* Pods_CNLiveBPersonalVerificationModule_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B6B758677C7BEA3A31C708A /* Pods_CNLiveBPersonalVerificationModule_Example.framework */; }; | ||
| 27 | +/* End PBXBuildFile section */ | ||
| 28 | + | ||
| 29 | +/* Begin PBXContainerItemProxy section */ | ||
| 30 | + 6003F5B3195388D20070C39A /* PBXContainerItemProxy */ = { | ||
| 31 | + isa = PBXContainerItemProxy; | ||
| 32 | + containerPortal = 6003F582195388D10070C39A /* Project object */; | ||
| 33 | + proxyType = 1; | ||
| 34 | + remoteGlobalIDString = 6003F589195388D20070C39A; | ||
| 35 | + remoteInfo = CNLiveBPersonalVerificationModule; | ||
| 36 | + }; | ||
| 37 | +/* End PBXContainerItemProxy section */ | ||
| 38 | + | ||
| 39 | +/* Begin PBXFileReference section */ | ||
| 40 | + 1B6B758677C7BEA3A31C708A /* Pods_CNLiveBPersonalVerificationModule_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CNLiveBPersonalVerificationModule_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 41 | + 27702AE45A435A3D3F6D7F80 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; }; | ||
| 42 | + 2EE018FA9C0FF28273EA7BB2 /* Pods-CNLiveBPersonalVerificationModule_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CNLiveBPersonalVerificationModule_Example.debug.xcconfig"; path = "Target Support Files/Pods-CNLiveBPersonalVerificationModule_Example/Pods-CNLiveBPersonalVerificationModule_Example.debug.xcconfig"; sourceTree = "<group>"; }; | ||
| 43 | + 5116195DD3BA1DE9570EE346 /* Pods-CNLiveBPersonalVerificationModule_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CNLiveBPersonalVerificationModule_Tests.release.xcconfig"; path = "Target Support Files/Pods-CNLiveBPersonalVerificationModule_Tests/Pods-CNLiveBPersonalVerificationModule_Tests.release.xcconfig"; sourceTree = "<group>"; }; | ||
| 44 | + 6003F58A195388D20070C39A /* CNLiveBPersonalVerificationModule_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CNLiveBPersonalVerificationModule_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 45 | + 6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; | ||
| 46 | + 6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; | ||
| 47 | + 6003F591195388D20070C39A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; | ||
| 48 | + 6003F595195388D20070C39A /* CNLiveBPersonalVerificationModule-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "CNLiveBPersonalVerificationModule-Info.plist"; sourceTree = "<group>"; }; | ||
| 49 | + 6003F597195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; | ||
| 50 | + 6003F599195388D20070C39A /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; | ||
| 51 | + 6003F59B195388D20070C39A /* CNLiveBPersonalVerificationModule-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "CNLiveBPersonalVerificationModule-Prefix.pch"; sourceTree = "<group>"; }; | ||
| 52 | + 6003F59C195388D20070C39A /* CNLIVEAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNLIVEAppDelegate.h; sourceTree = "<group>"; }; | ||
| 53 | + 6003F59D195388D20070C39A /* CNLIVEAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNLIVEAppDelegate.m; sourceTree = "<group>"; }; | ||
| 54 | + 6003F5A5195388D20070C39A /* CNLIVEViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNLIVEViewController.h; sourceTree = "<group>"; }; | ||
| 55 | + 6003F5A6195388D20070C39A /* CNLIVEViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNLIVEViewController.m; sourceTree = "<group>"; }; | ||
| 56 | + 6003F5A8195388D20070C39A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; | ||
| 57 | + 6003F5AE195388D20070C39A /* CNLiveBPersonalVerificationModule_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CNLiveBPersonalVerificationModule_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 58 | + 6003F5AF195388D20070C39A /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; | ||
| 59 | + 6003F5B7195388D20070C39A /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = "<group>"; }; | ||
| 60 | + 6003F5B9195388D20070C39A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; | ||
| 61 | + 6003F5BB195388D20070C39A /* Tests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Tests.m; sourceTree = "<group>"; }; | ||
| 62 | + 606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Tests-Prefix.pch"; sourceTree = "<group>"; }; | ||
| 63 | + 71719F9E1E33DC2100824A3D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; | ||
| 64 | + 7817A8D29BB68F50E5117819 /* Pods_CNLiveBPersonalVerificationModule_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CNLiveBPersonalVerificationModule_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; | ||
| 65 | + 783A7A588E81DAD3752AAC05 /* Pods-CNLiveBPersonalVerificationModule_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CNLiveBPersonalVerificationModule_Tests.debug.xcconfig"; path = "Target Support Files/Pods-CNLiveBPersonalVerificationModule_Tests/Pods-CNLiveBPersonalVerificationModule_Tests.debug.xcconfig"; sourceTree = "<group>"; }; | ||
| 66 | + 7FEBB718E90600F2D63EAB08 /* Pods-CNLiveBPersonalVerificationModule_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CNLiveBPersonalVerificationModule_Example.release.xcconfig"; path = "Target Support Files/Pods-CNLiveBPersonalVerificationModule_Example/Pods-CNLiveBPersonalVerificationModule_Example.release.xcconfig"; sourceTree = "<group>"; }; | ||
| 67 | + 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Main.storyboard; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; | ||
| 68 | + BFA9512AA979286EFC484573 /* CNLiveBPersonalVerificationModule.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = CNLiveBPersonalVerificationModule.podspec; path = ../CNLiveBPersonalVerificationModule.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; | ||
| 69 | + D6105CD3E0307C178FBE3F56 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; }; | ||
| 70 | +/* End PBXFileReference section */ | ||
| 71 | + | ||
| 72 | +/* Begin PBXFrameworksBuildPhase section */ | ||
| 73 | + 6003F587195388D20070C39A /* Frameworks */ = { | ||
| 74 | + isa = PBXFrameworksBuildPhase; | ||
| 75 | + buildActionMask = 2147483647; | ||
| 76 | + files = ( | ||
| 77 | + 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */, | ||
| 78 | + 6003F592195388D20070C39A /* UIKit.framework in Frameworks */, | ||
| 79 | + 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */, | ||
| 80 | + B9D618F281EA888D94759421 /* Pods_CNLiveBPersonalVerificationModule_Example.framework in Frameworks */, | ||
| 81 | + ); | ||
| 82 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 83 | + }; | ||
| 84 | + 6003F5AB195388D20070C39A /* Frameworks */ = { | ||
| 85 | + isa = PBXFrameworksBuildPhase; | ||
| 86 | + buildActionMask = 2147483647; | ||
| 87 | + files = ( | ||
| 88 | + 6003F5B0195388D20070C39A /* XCTest.framework in Frameworks */, | ||
| 89 | + 6003F5B2195388D20070C39A /* UIKit.framework in Frameworks */, | ||
| 90 | + 6003F5B1195388D20070C39A /* Foundation.framework in Frameworks */, | ||
| 91 | + 4E6D90B75C078198775B2788 /* Pods_CNLiveBPersonalVerificationModule_Tests.framework in Frameworks */, | ||
| 92 | + ); | ||
| 93 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 94 | + }; | ||
| 95 | +/* End PBXFrameworksBuildPhase section */ | ||
| 96 | + | ||
| 97 | +/* Begin PBXGroup section */ | ||
| 98 | + 6003F581195388D10070C39A = { | ||
| 99 | + isa = PBXGroup; | ||
| 100 | + children = ( | ||
| 101 | + 60FF7A9C1954A5C5007DD14C /* Podspec Metadata */, | ||
| 102 | + 6003F593195388D20070C39A /* Example for CNLiveBPersonalVerificationModule */, | ||
| 103 | + 6003F5B5195388D20070C39A /* Tests */, | ||
| 104 | + 6003F58C195388D20070C39A /* Frameworks */, | ||
| 105 | + 6003F58B195388D20070C39A /* Products */, | ||
| 106 | + 9E8625B53F4FF187786E57A5 /* Pods */, | ||
| 107 | + ); | ||
| 108 | + sourceTree = "<group>"; | ||
| 109 | + }; | ||
| 110 | + 6003F58B195388D20070C39A /* Products */ = { | ||
| 111 | + isa = PBXGroup; | ||
| 112 | + children = ( | ||
| 113 | + 6003F58A195388D20070C39A /* CNLiveBPersonalVerificationModule_Example.app */, | ||
| 114 | + 6003F5AE195388D20070C39A /* CNLiveBPersonalVerificationModule_Tests.xctest */, | ||
| 115 | + ); | ||
| 116 | + name = Products; | ||
| 117 | + sourceTree = "<group>"; | ||
| 118 | + }; | ||
| 119 | + 6003F58C195388D20070C39A /* Frameworks */ = { | ||
| 120 | + isa = PBXGroup; | ||
| 121 | + children = ( | ||
| 122 | + 6003F58D195388D20070C39A /* Foundation.framework */, | ||
| 123 | + 6003F58F195388D20070C39A /* CoreGraphics.framework */, | ||
| 124 | + 6003F591195388D20070C39A /* UIKit.framework */, | ||
| 125 | + 6003F5AF195388D20070C39A /* XCTest.framework */, | ||
| 126 | + 1B6B758677C7BEA3A31C708A /* Pods_CNLiveBPersonalVerificationModule_Example.framework */, | ||
| 127 | + 7817A8D29BB68F50E5117819 /* Pods_CNLiveBPersonalVerificationModule_Tests.framework */, | ||
| 128 | + ); | ||
| 129 | + name = Frameworks; | ||
| 130 | + sourceTree = "<group>"; | ||
| 131 | + }; | ||
| 132 | + 6003F593195388D20070C39A /* Example for CNLiveBPersonalVerificationModule */ = { | ||
| 133 | + isa = PBXGroup; | ||
| 134 | + children = ( | ||
| 135 | + 6003F59C195388D20070C39A /* CNLIVEAppDelegate.h */, | ||
| 136 | + 6003F59D195388D20070C39A /* CNLIVEAppDelegate.m */, | ||
| 137 | + 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */, | ||
| 138 | + 6003F5A5195388D20070C39A /* CNLIVEViewController.h */, | ||
| 139 | + 6003F5A6195388D20070C39A /* CNLIVEViewController.m */, | ||
| 140 | + 71719F9D1E33DC2100824A3D /* LaunchScreen.storyboard */, | ||
| 141 | + 6003F5A8195388D20070C39A /* Images.xcassets */, | ||
| 142 | + 6003F594195388D20070C39A /* Supporting Files */, | ||
| 143 | + ); | ||
| 144 | + name = "Example for CNLiveBPersonalVerificationModule"; | ||
| 145 | + path = CNLiveBPersonalVerificationModule; | ||
| 146 | + sourceTree = "<group>"; | ||
| 147 | + }; | ||
| 148 | + 6003F594195388D20070C39A /* Supporting Files */ = { | ||
| 149 | + isa = PBXGroup; | ||
| 150 | + children = ( | ||
| 151 | + 6003F595195388D20070C39A /* CNLiveBPersonalVerificationModule-Info.plist */, | ||
| 152 | + 6003F596195388D20070C39A /* InfoPlist.strings */, | ||
| 153 | + 6003F599195388D20070C39A /* main.m */, | ||
| 154 | + 6003F59B195388D20070C39A /* CNLiveBPersonalVerificationModule-Prefix.pch */, | ||
| 155 | + ); | ||
| 156 | + name = "Supporting Files"; | ||
| 157 | + sourceTree = "<group>"; | ||
| 158 | + }; | ||
| 159 | + 6003F5B5195388D20070C39A /* Tests */ = { | ||
| 160 | + isa = PBXGroup; | ||
| 161 | + children = ( | ||
| 162 | + 6003F5BB195388D20070C39A /* Tests.m */, | ||
| 163 | + 6003F5B6195388D20070C39A /* Supporting Files */, | ||
| 164 | + ); | ||
| 165 | + path = Tests; | ||
| 166 | + sourceTree = "<group>"; | ||
| 167 | + }; | ||
| 168 | + 6003F5B6195388D20070C39A /* Supporting Files */ = { | ||
| 169 | + isa = PBXGroup; | ||
| 170 | + children = ( | ||
| 171 | + 6003F5B7195388D20070C39A /* Tests-Info.plist */, | ||
| 172 | + 6003F5B8195388D20070C39A /* InfoPlist.strings */, | ||
| 173 | + 606FC2411953D9B200FFA9A0 /* Tests-Prefix.pch */, | ||
| 174 | + ); | ||
| 175 | + name = "Supporting Files"; | ||
| 176 | + sourceTree = "<group>"; | ||
| 177 | + }; | ||
| 178 | + 60FF7A9C1954A5C5007DD14C /* Podspec Metadata */ = { | ||
| 179 | + isa = PBXGroup; | ||
| 180 | + children = ( | ||
| 181 | + BFA9512AA979286EFC484573 /* CNLiveBPersonalVerificationModule.podspec */, | ||
| 182 | + 27702AE45A435A3D3F6D7F80 /* README.md */, | ||
| 183 | + D6105CD3E0307C178FBE3F56 /* LICENSE */, | ||
| 184 | + ); | ||
| 185 | + name = "Podspec Metadata"; | ||
| 186 | + sourceTree = "<group>"; | ||
| 187 | + }; | ||
| 188 | + 9E8625B53F4FF187786E57A5 /* Pods */ = { | ||
| 189 | + isa = PBXGroup; | ||
| 190 | + children = ( | ||
| 191 | + 2EE018FA9C0FF28273EA7BB2 /* Pods-CNLiveBPersonalVerificationModule_Example.debug.xcconfig */, | ||
| 192 | + 7FEBB718E90600F2D63EAB08 /* Pods-CNLiveBPersonalVerificationModule_Example.release.xcconfig */, | ||
| 193 | + 783A7A588E81DAD3752AAC05 /* Pods-CNLiveBPersonalVerificationModule_Tests.debug.xcconfig */, | ||
| 194 | + 5116195DD3BA1DE9570EE346 /* Pods-CNLiveBPersonalVerificationModule_Tests.release.xcconfig */, | ||
| 195 | + ); | ||
| 196 | + path = Pods; | ||
| 197 | + sourceTree = "<group>"; | ||
| 198 | + }; | ||
| 199 | +/* End PBXGroup section */ | ||
| 200 | + | ||
| 201 | +/* Begin PBXNativeTarget section */ | ||
| 202 | + 6003F589195388D20070C39A /* CNLiveBPersonalVerificationModule_Example */ = { | ||
| 203 | + isa = PBXNativeTarget; | ||
| 204 | + buildConfigurationList = 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "CNLiveBPersonalVerificationModule_Example" */; | ||
| 205 | + buildPhases = ( | ||
| 206 | + 3C3C879EC7A1C64649C9BCCF /* [CP] Check Pods Manifest.lock */, | ||
| 207 | + 6003F586195388D20070C39A /* Sources */, | ||
| 208 | + 6003F587195388D20070C39A /* Frameworks */, | ||
| 209 | + 6003F588195388D20070C39A /* Resources */, | ||
| 210 | + 4F2DF1EFF922B3D1F3D9B2AC /* [CP] Embed Pods Frameworks */, | ||
| 211 | + ); | ||
| 212 | + buildRules = ( | ||
| 213 | + ); | ||
| 214 | + dependencies = ( | ||
| 215 | + ); | ||
| 216 | + name = CNLiveBPersonalVerificationModule_Example; | ||
| 217 | + productName = CNLiveBPersonalVerificationModule; | ||
| 218 | + productReference = 6003F58A195388D20070C39A /* CNLiveBPersonalVerificationModule_Example.app */; | ||
| 219 | + productType = "com.apple.product-type.application"; | ||
| 220 | + }; | ||
| 221 | + 6003F5AD195388D20070C39A /* CNLiveBPersonalVerificationModule_Tests */ = { | ||
| 222 | + isa = PBXNativeTarget; | ||
| 223 | + buildConfigurationList = 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "CNLiveBPersonalVerificationModule_Tests" */; | ||
| 224 | + buildPhases = ( | ||
| 225 | + 262215FD0753982D7E546BFF /* [CP] Check Pods Manifest.lock */, | ||
| 226 | + 6003F5AA195388D20070C39A /* Sources */, | ||
| 227 | + 6003F5AB195388D20070C39A /* Frameworks */, | ||
| 228 | + 6003F5AC195388D20070C39A /* Resources */, | ||
| 229 | + ); | ||
| 230 | + buildRules = ( | ||
| 231 | + ); | ||
| 232 | + dependencies = ( | ||
| 233 | + 6003F5B4195388D20070C39A /* PBXTargetDependency */, | ||
| 234 | + ); | ||
| 235 | + name = CNLiveBPersonalVerificationModule_Tests; | ||
| 236 | + productName = CNLiveBPersonalVerificationModuleTests; | ||
| 237 | + productReference = 6003F5AE195388D20070C39A /* CNLiveBPersonalVerificationModule_Tests.xctest */; | ||
| 238 | + productType = "com.apple.product-type.bundle.unit-test"; | ||
| 239 | + }; | ||
| 240 | +/* End PBXNativeTarget section */ | ||
| 241 | + | ||
| 242 | +/* Begin PBXProject section */ | ||
| 243 | + 6003F582195388D10070C39A /* Project object */ = { | ||
| 244 | + isa = PBXProject; | ||
| 245 | + attributes = { | ||
| 246 | + CLASSPREFIX = CNLIVE; | ||
| 247 | + LastUpgradeCheck = 0720; | ||
| 248 | + ORGANIZATIONNAME = dawanzi; | ||
| 249 | + TargetAttributes = { | ||
| 250 | + 6003F5AD195388D20070C39A = { | ||
| 251 | + TestTargetID = 6003F589195388D20070C39A; | ||
| 252 | + }; | ||
| 253 | + }; | ||
| 254 | + }; | ||
| 255 | + buildConfigurationList = 6003F585195388D10070C39A /* Build configuration list for PBXProject "CNLiveBPersonalVerificationModule" */; | ||
| 256 | + compatibilityVersion = "Xcode 3.2"; | ||
| 257 | + developmentRegion = English; | ||
| 258 | + hasScannedForEncodings = 0; | ||
| 259 | + knownRegions = ( | ||
| 260 | + English, | ||
| 261 | + en, | ||
| 262 | + Base, | ||
| 263 | + ); | ||
| 264 | + mainGroup = 6003F581195388D10070C39A; | ||
| 265 | + productRefGroup = 6003F58B195388D20070C39A /* Products */; | ||
| 266 | + projectDirPath = ""; | ||
| 267 | + projectRoot = ""; | ||
| 268 | + targets = ( | ||
| 269 | + 6003F589195388D20070C39A /* CNLiveBPersonalVerificationModule_Example */, | ||
| 270 | + 6003F5AD195388D20070C39A /* CNLiveBPersonalVerificationModule_Tests */, | ||
| 271 | + ); | ||
| 272 | + }; | ||
| 273 | +/* End PBXProject section */ | ||
| 274 | + | ||
| 275 | +/* Begin PBXResourcesBuildPhase section */ | ||
| 276 | + 6003F588195388D20070C39A /* Resources */ = { | ||
| 277 | + isa = PBXResourcesBuildPhase; | ||
| 278 | + buildActionMask = 2147483647; | ||
| 279 | + files = ( | ||
| 280 | + 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */, | ||
| 281 | + 71719F9F1E33DC2100824A3D /* LaunchScreen.storyboard in Resources */, | ||
| 282 | + 6003F5A9195388D20070C39A /* Images.xcassets in Resources */, | ||
| 283 | + 6003F598195388D20070C39A /* InfoPlist.strings in Resources */, | ||
| 284 | + ); | ||
| 285 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 286 | + }; | ||
| 287 | + 6003F5AC195388D20070C39A /* Resources */ = { | ||
| 288 | + isa = PBXResourcesBuildPhase; | ||
| 289 | + buildActionMask = 2147483647; | ||
| 290 | + files = ( | ||
| 291 | + 6003F5BA195388D20070C39A /* InfoPlist.strings in Resources */, | ||
| 292 | + ); | ||
| 293 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 294 | + }; | ||
| 295 | +/* End PBXResourcesBuildPhase section */ | ||
| 296 | + | ||
| 297 | +/* Begin PBXShellScriptBuildPhase section */ | ||
| 298 | + 262215FD0753982D7E546BFF /* [CP] Check Pods Manifest.lock */ = { | ||
| 299 | + isa = PBXShellScriptBuildPhase; | ||
| 300 | + buildActionMask = 2147483647; | ||
| 301 | + files = ( | ||
| 302 | + ); | ||
| 303 | + inputFileListPaths = ( | ||
| 304 | + ); | ||
| 305 | + inputPaths = ( | ||
| 306 | + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | ||
| 307 | + "${PODS_ROOT}/Manifest.lock", | ||
| 308 | + ); | ||
| 309 | + name = "[CP] Check Pods Manifest.lock"; | ||
| 310 | + outputFileListPaths = ( | ||
| 311 | + ); | ||
| 312 | + outputPaths = ( | ||
| 313 | + "$(DERIVED_FILE_DIR)/Pods-CNLiveBPersonalVerificationModule_Tests-checkManifestLockResult.txt", | ||
| 314 | + ); | ||
| 315 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 316 | + shellPath = /bin/sh; | ||
| 317 | + 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"; | ||
| 318 | + showEnvVarsInLog = 0; | ||
| 319 | + }; | ||
| 320 | + 3C3C879EC7A1C64649C9BCCF /* [CP] Check Pods Manifest.lock */ = { | ||
| 321 | + isa = PBXShellScriptBuildPhase; | ||
| 322 | + buildActionMask = 2147483647; | ||
| 323 | + files = ( | ||
| 324 | + ); | ||
| 325 | + inputFileListPaths = ( | ||
| 326 | + ); | ||
| 327 | + inputPaths = ( | ||
| 328 | + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | ||
| 329 | + "${PODS_ROOT}/Manifest.lock", | ||
| 330 | + ); | ||
| 331 | + name = "[CP] Check Pods Manifest.lock"; | ||
| 332 | + outputFileListPaths = ( | ||
| 333 | + ); | ||
| 334 | + outputPaths = ( | ||
| 335 | + "$(DERIVED_FILE_DIR)/Pods-CNLiveBPersonalVerificationModule_Example-checkManifestLockResult.txt", | ||
| 336 | + ); | ||
| 337 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 338 | + shellPath = /bin/sh; | ||
| 339 | + 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"; | ||
| 340 | + showEnvVarsInLog = 0; | ||
| 341 | + }; | ||
| 342 | + 4F2DF1EFF922B3D1F3D9B2AC /* [CP] Embed Pods Frameworks */ = { | ||
| 343 | + isa = PBXShellScriptBuildPhase; | ||
| 344 | + buildActionMask = 2147483647; | ||
| 345 | + files = ( | ||
| 346 | + ); | ||
| 347 | + inputPaths = ( | ||
| 348 | + "${PODS_ROOT}/Target Support Files/Pods-CNLiveBPersonalVerificationModule_Example/Pods-CNLiveBPersonalVerificationModule_Example-frameworks.sh", | ||
| 349 | + "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework", | ||
| 350 | + "${BUILT_PRODUCTS_DIR}/CNLiveBPersonalVerificationModule/CNLiveBPersonalVerificationModule.framework", | ||
| 351 | + "${BUILT_PRODUCTS_DIR}/CNLiveBaseKit/CNLiveBaseKit.framework", | ||
| 352 | + "${BUILT_PRODUCTS_DIR}/CNLiveCommonCategory/CNLiveCommonCategory.framework", | ||
| 353 | + "${BUILT_PRODUCTS_DIR}/CNLiveCustomUI/CNLiveCustomUI.framework", | ||
| 354 | + "${BUILT_PRODUCTS_DIR}/CNLiveRequestBastKit/CNLiveRequestBastKit.framework", | ||
| 355 | + "${BUILT_PRODUCTS_DIR}/CNLiveTripartiteManagement/CNLiveTripartiteManagement.framework", | ||
| 356 | + "${BUILT_PRODUCTS_DIR}/CNLiveUserManagement/CNLiveUserManagement.framework", | ||
| 357 | + "${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework", | ||
| 358 | + "${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework", | ||
| 359 | + "${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework", | ||
| 360 | + "${BUILT_PRODUCTS_DIR}/QMUIKit/QMUIKit.framework", | ||
| 361 | + "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", | ||
| 362 | + "${BUILT_PRODUCTS_DIR}/YYKit/YYKit.framework", | ||
| 363 | + ); | ||
| 364 | + name = "[CP] Embed Pods Frameworks"; | ||
| 365 | + outputPaths = ( | ||
| 366 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework", | ||
| 367 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBPersonalVerificationModule.framework", | ||
| 368 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseKit.framework", | ||
| 369 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCommonCategory.framework", | ||
| 370 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveCustomUI.framework", | ||
| 371 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveRequestBastKit.framework", | ||
| 372 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveTripartiteManagement.framework", | ||
| 373 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveUserManagement.framework", | ||
| 374 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework", | ||
| 375 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework", | ||
| 376 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework", | ||
| 377 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/QMUIKit.framework", | ||
| 378 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", | ||
| 379 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYKit.framework", | ||
| 380 | + ); | ||
| 381 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 382 | + shellPath = /bin/sh; | ||
| 383 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveBPersonalVerificationModule_Example/Pods-CNLiveBPersonalVerificationModule_Example-frameworks.sh\"\n"; | ||
| 384 | + showEnvVarsInLog = 0; | ||
| 385 | + }; | ||
| 386 | +/* End PBXShellScriptBuildPhase section */ | ||
| 387 | + | ||
| 388 | +/* Begin PBXSourcesBuildPhase section */ | ||
| 389 | + 6003F586195388D20070C39A /* Sources */ = { | ||
| 390 | + isa = PBXSourcesBuildPhase; | ||
| 391 | + buildActionMask = 2147483647; | ||
| 392 | + files = ( | ||
| 393 | + 6003F59E195388D20070C39A /* CNLIVEAppDelegate.m in Sources */, | ||
| 394 | + 6003F5A7195388D20070C39A /* CNLIVEViewController.m in Sources */, | ||
| 395 | + 6003F59A195388D20070C39A /* main.m in Sources */, | ||
| 396 | + ); | ||
| 397 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 398 | + }; | ||
| 399 | + 6003F5AA195388D20070C39A /* Sources */ = { | ||
| 400 | + isa = PBXSourcesBuildPhase; | ||
| 401 | + buildActionMask = 2147483647; | ||
| 402 | + files = ( | ||
| 403 | + 6003F5BC195388D20070C39A /* Tests.m in Sources */, | ||
| 404 | + ); | ||
| 405 | + runOnlyForDeploymentPostprocessing = 0; | ||
| 406 | + }; | ||
| 407 | +/* End PBXSourcesBuildPhase section */ | ||
| 408 | + | ||
| 409 | +/* Begin PBXTargetDependency section */ | ||
| 410 | + 6003F5B4195388D20070C39A /* PBXTargetDependency */ = { | ||
| 411 | + isa = PBXTargetDependency; | ||
| 412 | + target = 6003F589195388D20070C39A /* CNLiveBPersonalVerificationModule_Example */; | ||
| 413 | + targetProxy = 6003F5B3195388D20070C39A /* PBXContainerItemProxy */; | ||
| 414 | + }; | ||
| 415 | +/* End PBXTargetDependency section */ | ||
| 416 | + | ||
| 417 | +/* Begin PBXVariantGroup section */ | ||
| 418 | + 6003F596195388D20070C39A /* InfoPlist.strings */ = { | ||
| 419 | + isa = PBXVariantGroup; | ||
| 420 | + children = ( | ||
| 421 | + 6003F597195388D20070C39A /* en */, | ||
| 422 | + ); | ||
| 423 | + name = InfoPlist.strings; | ||
| 424 | + sourceTree = "<group>"; | ||
| 425 | + }; | ||
| 426 | + 6003F5B8195388D20070C39A /* InfoPlist.strings */ = { | ||
| 427 | + isa = PBXVariantGroup; | ||
| 428 | + children = ( | ||
| 429 | + 6003F5B9195388D20070C39A /* en */, | ||
| 430 | + ); | ||
| 431 | + name = InfoPlist.strings; | ||
| 432 | + sourceTree = "<group>"; | ||
| 433 | + }; | ||
| 434 | + 71719F9D1E33DC2100824A3D /* LaunchScreen.storyboard */ = { | ||
| 435 | + isa = PBXVariantGroup; | ||
| 436 | + children = ( | ||
| 437 | + 71719F9E1E33DC2100824A3D /* Base */, | ||
| 438 | + ); | ||
| 439 | + name = LaunchScreen.storyboard; | ||
| 440 | + sourceTree = "<group>"; | ||
| 441 | + }; | ||
| 442 | +/* End PBXVariantGroup section */ | ||
| 443 | + | ||
| 444 | +/* Begin XCBuildConfiguration section */ | ||
| 445 | + 6003F5BD195388D20070C39A /* Debug */ = { | ||
| 446 | + isa = XCBuildConfiguration; | ||
| 447 | + buildSettings = { | ||
| 448 | + ALWAYS_SEARCH_USER_PATHS = NO; | ||
| 449 | + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | ||
| 450 | + CLANG_CXX_LIBRARY = "libc++"; | ||
| 451 | + CLANG_ENABLE_MODULES = YES; | ||
| 452 | + CLANG_ENABLE_OBJC_ARC = YES; | ||
| 453 | + CLANG_WARN_BOOL_CONVERSION = YES; | ||
| 454 | + CLANG_WARN_CONSTANT_CONVERSION = YES; | ||
| 455 | + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | ||
| 456 | + CLANG_WARN_EMPTY_BODY = YES; | ||
| 457 | + CLANG_WARN_ENUM_CONVERSION = YES; | ||
| 458 | + CLANG_WARN_INT_CONVERSION = YES; | ||
| 459 | + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | ||
| 460 | + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | ||
| 461 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | ||
| 462 | + COPY_PHASE_STRIP = NO; | ||
| 463 | + ENABLE_TESTABILITY = YES; | ||
| 464 | + GCC_C_LANGUAGE_STANDARD = gnu99; | ||
| 465 | + GCC_DYNAMIC_NO_PIC = NO; | ||
| 466 | + GCC_OPTIMIZATION_LEVEL = 0; | ||
| 467 | + GCC_PREPROCESSOR_DEFINITIONS = ( | ||
| 468 | + "DEBUG=1", | ||
| 469 | + "$(inherited)", | ||
| 470 | + ); | ||
| 471 | + GCC_SYMBOLS_PRIVATE_EXTERN = NO; | ||
| 472 | + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | ||
| 473 | + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | ||
| 474 | + GCC_WARN_UNDECLARED_SELECTOR = YES; | ||
| 475 | + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | ||
| 476 | + GCC_WARN_UNUSED_FUNCTION = YES; | ||
| 477 | + GCC_WARN_UNUSED_VARIABLE = YES; | ||
| 478 | + IPHONEOS_DEPLOYMENT_TARGET = 9.3; | ||
| 479 | + ONLY_ACTIVE_ARCH = YES; | ||
| 480 | + SDKROOT = iphoneos; | ||
| 481 | + TARGETED_DEVICE_FAMILY = "1,2"; | ||
| 482 | + }; | ||
| 483 | + name = Debug; | ||
| 484 | + }; | ||
| 485 | + 6003F5BE195388D20070C39A /* Release */ = { | ||
| 486 | + isa = XCBuildConfiguration; | ||
| 487 | + buildSettings = { | ||
| 488 | + ALWAYS_SEARCH_USER_PATHS = NO; | ||
| 489 | + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; | ||
| 490 | + CLANG_CXX_LIBRARY = "libc++"; | ||
| 491 | + CLANG_ENABLE_MODULES = YES; | ||
| 492 | + CLANG_ENABLE_OBJC_ARC = YES; | ||
| 493 | + CLANG_WARN_BOOL_CONVERSION = YES; | ||
| 494 | + CLANG_WARN_CONSTANT_CONVERSION = YES; | ||
| 495 | + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; | ||
| 496 | + CLANG_WARN_EMPTY_BODY = YES; | ||
| 497 | + CLANG_WARN_ENUM_CONVERSION = YES; | ||
| 498 | + CLANG_WARN_INT_CONVERSION = YES; | ||
| 499 | + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; | ||
| 500 | + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; | ||
| 501 | + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; | ||
| 502 | + COPY_PHASE_STRIP = YES; | ||
| 503 | + ENABLE_NS_ASSERTIONS = NO; | ||
| 504 | + GCC_C_LANGUAGE_STANDARD = gnu99; | ||
| 505 | + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; | ||
| 506 | + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; | ||
| 507 | + GCC_WARN_UNDECLARED_SELECTOR = YES; | ||
| 508 | + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; | ||
| 509 | + GCC_WARN_UNUSED_FUNCTION = YES; | ||
| 510 | + GCC_WARN_UNUSED_VARIABLE = YES; | ||
| 511 | + IPHONEOS_DEPLOYMENT_TARGET = 9.3; | ||
| 512 | + SDKROOT = iphoneos; | ||
| 513 | + TARGETED_DEVICE_FAMILY = "1,2"; | ||
| 514 | + VALIDATE_PRODUCT = YES; | ||
| 515 | + }; | ||
| 516 | + name = Release; | ||
| 517 | + }; | ||
| 518 | + 6003F5C0195388D20070C39A /* Debug */ = { | ||
| 519 | + isa = XCBuildConfiguration; | ||
| 520 | + baseConfigurationReference = 2EE018FA9C0FF28273EA7BB2 /* Pods-CNLiveBPersonalVerificationModule_Example.debug.xcconfig */; | ||
| 521 | + buildSettings = { | ||
| 522 | + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||
| 523 | + GCC_PRECOMPILE_PREFIX_HEADER = YES; | ||
| 524 | + GCC_PREFIX_HEADER = "CNLiveBPersonalVerificationModule/CNLiveBPersonalVerificationModule-Prefix.pch"; | ||
| 525 | + INFOPLIST_FILE = "CNLiveBPersonalVerificationModule/CNLiveBPersonalVerificationModule-Info.plist"; | ||
| 526 | + MODULE_NAME = ExampleApp; | ||
| 527 | + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; | ||
| 528 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 529 | + SWIFT_VERSION = 4.0; | ||
| 530 | + WRAPPER_EXTENSION = app; | ||
| 531 | + }; | ||
| 532 | + name = Debug; | ||
| 533 | + }; | ||
| 534 | + 6003F5C1195388D20070C39A /* Release */ = { | ||
| 535 | + isa = XCBuildConfiguration; | ||
| 536 | + baseConfigurationReference = 7FEBB718E90600F2D63EAB08 /* Pods-CNLiveBPersonalVerificationModule_Example.release.xcconfig */; | ||
| 537 | + buildSettings = { | ||
| 538 | + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; | ||
| 539 | + GCC_PRECOMPILE_PREFIX_HEADER = YES; | ||
| 540 | + GCC_PREFIX_HEADER = "CNLiveBPersonalVerificationModule/CNLiveBPersonalVerificationModule-Prefix.pch"; | ||
| 541 | + INFOPLIST_FILE = "CNLiveBPersonalVerificationModule/CNLiveBPersonalVerificationModule-Info.plist"; | ||
| 542 | + MODULE_NAME = ExampleApp; | ||
| 543 | + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; | ||
| 544 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 545 | + SWIFT_VERSION = 4.0; | ||
| 546 | + WRAPPER_EXTENSION = app; | ||
| 547 | + }; | ||
| 548 | + name = Release; | ||
| 549 | + }; | ||
| 550 | + 6003F5C3195388D20070C39A /* Debug */ = { | ||
| 551 | + isa = XCBuildConfiguration; | ||
| 552 | + baseConfigurationReference = 783A7A588E81DAD3752AAC05 /* Pods-CNLiveBPersonalVerificationModule_Tests.debug.xcconfig */; | ||
| 553 | + buildSettings = { | ||
| 554 | + BUNDLE_LOADER = "$(TEST_HOST)"; | ||
| 555 | + FRAMEWORK_SEARCH_PATHS = ( | ||
| 556 | + "$(PLATFORM_DIR)/Developer/Library/Frameworks", | ||
| 557 | + "$(inherited)", | ||
| 558 | + "$(DEVELOPER_FRAMEWORKS_DIR)", | ||
| 559 | + ); | ||
| 560 | + GCC_PRECOMPILE_PREFIX_HEADER = YES; | ||
| 561 | + GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch"; | ||
| 562 | + GCC_PREPROCESSOR_DEFINITIONS = ( | ||
| 563 | + "DEBUG=1", | ||
| 564 | + "$(inherited)", | ||
| 565 | + ); | ||
| 566 | + INFOPLIST_FILE = "Tests/Tests-Info.plist"; | ||
| 567 | + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; | ||
| 568 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 569 | + SWIFT_VERSION = 4.0; | ||
| 570 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CNLiveBPersonalVerificationModule_Example.app/CNLiveBPersonalVerificationModule_Example"; | ||
| 571 | + WRAPPER_EXTENSION = xctest; | ||
| 572 | + }; | ||
| 573 | + name = Debug; | ||
| 574 | + }; | ||
| 575 | + 6003F5C4195388D20070C39A /* Release */ = { | ||
| 576 | + isa = XCBuildConfiguration; | ||
| 577 | + baseConfigurationReference = 5116195DD3BA1DE9570EE346 /* Pods-CNLiveBPersonalVerificationModule_Tests.release.xcconfig */; | ||
| 578 | + buildSettings = { | ||
| 579 | + BUNDLE_LOADER = "$(TEST_HOST)"; | ||
| 580 | + FRAMEWORK_SEARCH_PATHS = ( | ||
| 581 | + "$(PLATFORM_DIR)/Developer/Library/Frameworks", | ||
| 582 | + "$(inherited)", | ||
| 583 | + "$(DEVELOPER_FRAMEWORKS_DIR)", | ||
| 584 | + ); | ||
| 585 | + GCC_PRECOMPILE_PREFIX_HEADER = YES; | ||
| 586 | + GCC_PREFIX_HEADER = "Tests/Tests-Prefix.pch"; | ||
| 587 | + INFOPLIST_FILE = "Tests/Tests-Info.plist"; | ||
| 588 | + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; | ||
| 589 | + PRODUCT_NAME = "$(TARGET_NAME)"; | ||
| 590 | + SWIFT_VERSION = 4.0; | ||
| 591 | + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CNLiveBPersonalVerificationModule_Example.app/CNLiveBPersonalVerificationModule_Example"; | ||
| 592 | + WRAPPER_EXTENSION = xctest; | ||
| 593 | + }; | ||
| 594 | + name = Release; | ||
| 595 | + }; | ||
| 596 | +/* End XCBuildConfiguration section */ | ||
| 597 | + | ||
| 598 | +/* Begin XCConfigurationList section */ | ||
| 599 | + 6003F585195388D10070C39A /* Build configuration list for PBXProject "CNLiveBPersonalVerificationModule" */ = { | ||
| 600 | + isa = XCConfigurationList; | ||
| 601 | + buildConfigurations = ( | ||
| 602 | + 6003F5BD195388D20070C39A /* Debug */, | ||
| 603 | + 6003F5BE195388D20070C39A /* Release */, | ||
| 604 | + ); | ||
| 605 | + defaultConfigurationIsVisible = 0; | ||
| 606 | + defaultConfigurationName = Release; | ||
| 607 | + }; | ||
| 608 | + 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "CNLiveBPersonalVerificationModule_Example" */ = { | ||
| 609 | + isa = XCConfigurationList; | ||
| 610 | + buildConfigurations = ( | ||
| 611 | + 6003F5C0195388D20070C39A /* Debug */, | ||
| 612 | + 6003F5C1195388D20070C39A /* Release */, | ||
| 613 | + ); | ||
| 614 | + defaultConfigurationIsVisible = 0; | ||
| 615 | + defaultConfigurationName = Release; | ||
| 616 | + }; | ||
| 617 | + 6003F5C2195388D20070C39A /* Build configuration list for PBXNativeTarget "CNLiveBPersonalVerificationModule_Tests" */ = { | ||
| 618 | + isa = XCConfigurationList; | ||
| 619 | + buildConfigurations = ( | ||
| 620 | + 6003F5C3195388D20070C39A /* Debug */, | ||
| 621 | + 6003F5C4195388D20070C39A /* Release */, | ||
| 622 | + ); | ||
| 623 | + defaultConfigurationIsVisible = 0; | ||
| 624 | + defaultConfigurationName = Release; | ||
| 625 | + }; | ||
| 626 | +/* End XCConfigurationList section */ | ||
| 627 | + }; | ||
| 628 | + rootObject = 6003F582195388D10070C39A /* Project object */; | ||
| 629 | +} |
Example/CNLiveBPersonalVerificationModule.xcodeproj/xcshareddata/xcschemes/CNLiveBPersonalVerificationModule-Example.xcscheme
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<Scheme | ||
| 3 | + LastUpgradeVersion = "0720" | ||
| 4 | + version = "1.3"> | ||
| 5 | + <BuildAction | ||
| 6 | + parallelizeBuildables = "YES" | ||
| 7 | + buildImplicitDependencies = "YES"> | ||
| 8 | + <BuildActionEntries> | ||
| 9 | + <BuildActionEntry | ||
| 10 | + buildForTesting = "YES" | ||
| 11 | + buildForRunning = "YES" | ||
| 12 | + buildForProfiling = "YES" | ||
| 13 | + buildForArchiving = "YES" | ||
| 14 | + buildForAnalyzing = "YES"> | ||
| 15 | + <BuildableReference | ||
| 16 | + BuildableIdentifier = "primary" | ||
| 17 | + BlueprintIdentifier = "6003F589195388D20070C39A" | ||
| 18 | + BuildableName = "CNLiveBPersonalVerificationModule_Example.app" | ||
| 19 | + BlueprintName = "CNLiveBPersonalVerificationModule_Example" | ||
| 20 | + ReferencedContainer = "container:CNLiveBPersonalVerificationModule.xcodeproj"> | ||
| 21 | + </BuildableReference> | ||
| 22 | + </BuildActionEntry> | ||
| 23 | + </BuildActionEntries> | ||
| 24 | + </BuildAction> | ||
| 25 | + <TestAction | ||
| 26 | + buildConfiguration = "Debug" | ||
| 27 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | ||
| 28 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | ||
| 29 | + shouldUseLaunchSchemeArgsEnv = "YES"> | ||
| 30 | + <Testables> | ||
| 31 | + <TestableReference | ||
| 32 | + skipped = "NO"> | ||
| 33 | + <BuildableReference | ||
| 34 | + BuildableIdentifier = "primary" | ||
| 35 | + BlueprintIdentifier = "6003F5AD195388D20070C39A" | ||
| 36 | + BuildableName = "CNLiveBPersonalVerificationModule_Tests.xctest" | ||
| 37 | + BlueprintName = "CNLiveBPersonalVerificationModule_Tests" | ||
| 38 | + ReferencedContainer = "container:CNLiveBPersonalVerificationModule.xcodeproj"> | ||
| 39 | + </BuildableReference> | ||
| 40 | + </TestableReference> | ||
| 41 | + </Testables> | ||
| 42 | + <MacroExpansion> | ||
| 43 | + <BuildableReference | ||
| 44 | + BuildableIdentifier = "primary" | ||
| 45 | + BlueprintIdentifier = "6003F589195388D20070C39A" | ||
| 46 | + BuildableName = "CNLiveBPersonalVerificationModule_Example.app" | ||
| 47 | + BlueprintName = "CNLiveBPersonalVerificationModule_Example" | ||
| 48 | + ReferencedContainer = "container:CNLiveBPersonalVerificationModule.xcodeproj"> | ||
| 49 | + </BuildableReference> | ||
| 50 | + </MacroExpansion> | ||
| 51 | + <AdditionalOptions> | ||
| 52 | + </AdditionalOptions> | ||
| 53 | + </TestAction> | ||
| 54 | + <LaunchAction | ||
| 55 | + buildConfiguration = "Debug" | ||
| 56 | + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" | ||
| 57 | + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" | ||
| 58 | + launchStyle = "0" | ||
| 59 | + useCustomWorkingDirectory = "NO" | ||
| 60 | + ignoresPersistentStateOnLaunch = "NO" | ||
| 61 | + debugDocumentVersioning = "YES" | ||
| 62 | + debugServiceExtension = "internal" | ||
| 63 | + allowLocationSimulation = "YES"> | ||
| 64 | + <BuildableProductRunnable | ||
| 65 | + runnableDebuggingMode = "0"> | ||
| 66 | + <BuildableReference | ||
| 67 | + BuildableIdentifier = "primary" | ||
| 68 | + BlueprintIdentifier = "6003F589195388D20070C39A" | ||
| 69 | + BuildableName = "CNLiveBPersonalVerificationModule_Example.app" | ||
| 70 | + BlueprintName = "CNLiveBPersonalVerificationModule_Example" | ||
| 71 | + ReferencedContainer = "container:CNLiveBPersonalVerificationModule.xcodeproj"> | ||
| 72 | + </BuildableReference> | ||
| 73 | + </BuildableProductRunnable> | ||
| 74 | + <AdditionalOptions> | ||
| 75 | + </AdditionalOptions> | ||
| 76 | + </LaunchAction> | ||
| 77 | + <ProfileAction | ||
| 78 | + buildConfiguration = "Release" | ||
| 79 | + shouldUseLaunchSchemeArgsEnv = "YES" | ||
| 80 | + savedToolIdentifier = "" | ||
| 81 | + useCustomWorkingDirectory = "NO" | ||
| 82 | + debugDocumentVersioning = "YES"> | ||
| 83 | + <BuildableProductRunnable | ||
| 84 | + runnableDebuggingMode = "0"> | ||
| 85 | + <BuildableReference | ||
| 86 | + BuildableIdentifier = "primary" | ||
| 87 | + BlueprintIdentifier = "6003F589195388D20070C39A" | ||
| 88 | + BuildableName = "CNLiveBPersonalVerificationModule_Example.app" | ||
| 89 | + BlueprintName = "CNLiveBPersonalVerificationModule_Example" | ||
| 90 | + ReferencedContainer = "container:CNLiveBPersonalVerificationModule.xcodeproj"> | ||
| 91 | + </BuildableReference> | ||
| 92 | + </BuildableProductRunnable> | ||
| 93 | + </ProfileAction> | ||
| 94 | + <AnalyzeAction | ||
| 95 | + buildConfiguration = "Debug"> | ||
| 96 | + </AnalyzeAction> | ||
| 97 | + <ArchiveAction | ||
| 98 | + buildConfiguration = "Release" | ||
| 99 | + revealArchiveInOrganizer = "YES"> | ||
| 100 | + </ArchiveAction> | ||
| 101 | +</Scheme> |
Example/CNLiveBPersonalVerificationModule/Base.lproj/LaunchScreen.storyboard
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="01J-lp-oVM"> | ||
| 3 | + <device id="retina4_7" orientation="portrait"> | ||
| 4 | + <adaptation id="fullscreen"/> | ||
| 5 | + </device> | ||
| 6 | + <dependencies> | ||
| 7 | + <deployment identifier="iOS"/> | ||
| 8 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/> | ||
| 9 | + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 10 | + </dependencies> | ||
| 11 | + <scenes> | ||
| 12 | + <!--View Controller--> | ||
| 13 | + <scene sceneID="EHf-IW-A2E"> | ||
| 14 | + <objects> | ||
| 15 | + <viewController id="01J-lp-oVM" sceneMemberID="viewController"> | ||
| 16 | + <layoutGuides> | ||
| 17 | + <viewControllerLayoutGuide type="top" id="Llm-lL-Icb"/> | ||
| 18 | + <viewControllerLayoutGuide type="bottom" id="xb3-aO-Qok"/> | ||
| 19 | + </layoutGuides> | ||
| 20 | + <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3"> | ||
| 21 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 22 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 23 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 24 | + </view> | ||
| 25 | + </viewController> | ||
| 26 | + <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 27 | + </objects> | ||
| 28 | + <point key="canvasLocation" x="53" y="375"/> | ||
| 29 | + </scene> | ||
| 30 | + </scenes> | ||
| 31 | +</document> |
Example/CNLiveBPersonalVerificationModule/Base.lproj/Main.storyboard
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="13771" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="whP-gf-Uak"> | ||
| 3 | + <device id="retina4_7" orientation="portrait"> | ||
| 4 | + <adaptation id="fullscreen"/> | ||
| 5 | + </device> | ||
| 6 | + <dependencies> | ||
| 7 | + <deployment identifier="iOS"/> | ||
| 8 | + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13772"/> | ||
| 9 | + <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> | ||
| 10 | + </dependencies> | ||
| 11 | + <scenes> | ||
| 12 | + <!--View Controller--> | ||
| 13 | + <scene sceneID="wQg-tq-qST"> | ||
| 14 | + <objects> | ||
| 15 | + <viewController id="whP-gf-Uak" customClass="CNLIVEViewController" sceneMemberID="viewController"> | ||
| 16 | + <layoutGuides> | ||
| 17 | + <viewControllerLayoutGuide type="top" id="uEw-UM-LJ8"/> | ||
| 18 | + <viewControllerLayoutGuide type="bottom" id="Mvr-aV-6Um"/> | ||
| 19 | + </layoutGuides> | ||
| 20 | + <view key="view" contentMode="scaleToFill" id="TpU-gO-2f1"> | ||
| 21 | + <rect key="frame" x="0.0" y="0.0" width="375" height="667"/> | ||
| 22 | + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> | ||
| 23 | + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> | ||
| 24 | + </view> | ||
| 25 | + </viewController> | ||
| 26 | + <placeholder placeholderIdentifier="IBFirstResponder" id="tc2-Qw-aMS" userLabel="First Responder" sceneMemberID="firstResponder"/> | ||
| 27 | + </objects> | ||
| 28 | + <point key="canvasLocation" x="305" y="433"/> | ||
| 29 | + </scene> | ||
| 30 | + </scenes> | ||
| 31 | +</document> |
Example/CNLiveBPersonalVerificationModule/CNLIVEAppDelegate.h
0 → 100644
| 1 | +// | ||
| 2 | +// CNLIVEAppDelegate.h | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by dawanzi on 04/06/2020. | ||
| 6 | +// Copyright (c) 2020 dawanzi. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +@import UIKit; | ||
| 10 | + | ||
| 11 | +@interface CNLIVEAppDelegate : UIResponder <UIApplicationDelegate> | ||
| 12 | + | ||
| 13 | +@property (strong, nonatomic) UIWindow *window; | ||
| 14 | + | ||
| 15 | +@end |
Example/CNLiveBPersonalVerificationModule/CNLIVEAppDelegate.m
0 → 100644
| 1 | +// | ||
| 2 | +// CNLIVEAppDelegate.m | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by dawanzi on 04/06/2020. | ||
| 6 | +// Copyright (c) 2020 dawanzi. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +#import "CNLIVEAppDelegate.h" | ||
| 10 | +#import "CNLIVEViewController.h" | ||
| 11 | +@implementation CNLIVEAppDelegate | ||
| 12 | + | ||
| 13 | +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | ||
| 14 | +{ | ||
| 15 | + self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; | ||
| 16 | + self.window.backgroundColor = [UIColor whiteColor]; | ||
| 17 | + CNLIVEViewController *vc = [[CNLIVEViewController alloc]init]; | ||
| 18 | + UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:vc]; | ||
| 19 | + self.window.rootViewController = nav; | ||
| 20 | + [self.window makeKeyAndVisible]; | ||
| 21 | + return YES; | ||
| 22 | +} | ||
| 23 | + | ||
| 24 | +- (void)applicationWillResignActive:(UIApplication *)application | ||
| 25 | +{ | ||
| 26 | + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. | ||
| 27 | + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. | ||
| 28 | +} | ||
| 29 | + | ||
| 30 | +- (void)applicationDidEnterBackground:(UIApplication *)application | ||
| 31 | +{ | ||
| 32 | + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. | ||
| 33 | + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +- (void)applicationWillEnterForeground:(UIApplication *)application | ||
| 37 | +{ | ||
| 38 | + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. | ||
| 39 | +} | ||
| 40 | + | ||
| 41 | +- (void)applicationDidBecomeActive:(UIApplication *)application | ||
| 42 | +{ | ||
| 43 | + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. | ||
| 44 | +} | ||
| 45 | + | ||
| 46 | +- (void)applicationWillTerminate:(UIApplication *)application | ||
| 47 | +{ | ||
| 48 | + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. | ||
| 49 | +} | ||
| 50 | + | ||
| 51 | +@end |
Example/CNLiveBPersonalVerificationModule/CNLIVEViewController.h
0 → 100644
Example/CNLiveBPersonalVerificationModule/CNLIVEViewController.m
0 → 100644
| 1 | +// | ||
| 2 | +// CNLIVEViewController.m | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by dawanzi on 04/06/2020. | ||
| 6 | +// Copyright (c) 2020 dawanzi. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +#import "CNLIVEViewController.h" | ||
| 10 | +#import "CNBPersonalVerificationController.h" | ||
| 11 | +@interface CNLIVEViewController () | ||
| 12 | + | ||
| 13 | +@end | ||
| 14 | + | ||
| 15 | +@implementation CNLIVEViewController | ||
| 16 | + | ||
| 17 | +- (void)viewDidLoad | ||
| 18 | +{ | ||
| 19 | + [super viewDidLoad]; | ||
| 20 | + UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; | ||
| 21 | + button.frame = CGRectMake(100, 100, 100, 100); | ||
| 22 | + button.backgroundColor = [UIColor cyanColor]; | ||
| 23 | + [button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside]; | ||
| 24 | + [self.view addSubview:button]; | ||
| 25 | +} | ||
| 26 | +- (void)buttonAction { | ||
| 27 | + CNBPersonalVerificationController *vc = [[CNBPersonalVerificationController alloc]init]; | ||
| 28 | + [self.navigationController pushViewController:vc animated:YES]; | ||
| 29 | +} | ||
| 30 | +- (void)didReceiveMemoryWarning | ||
| 31 | +{ | ||
| 32 | + [super didReceiveMemoryWarning]; | ||
| 33 | + // Dispose of any resources that can be recreated. | ||
| 34 | +} | ||
| 35 | + | ||
| 36 | +@end |
Example/CNLiveBPersonalVerificationModule/CNLiveBPersonalVerificationModule-Info.plist
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| 3 | +<plist version="1.0"> | ||
| 4 | +<dict> | ||
| 5 | + <key>CFBundleDevelopmentRegion</key> | ||
| 6 | + <string>en</string> | ||
| 7 | + <key>CFBundleDisplayName</key> | ||
| 8 | + <string>${PRODUCT_NAME}</string> | ||
| 9 | + <key>CFBundleExecutable</key> | ||
| 10 | + <string>${EXECUTABLE_NAME}</string> | ||
| 11 | + <key>CFBundleIdentifier</key> | ||
| 12 | + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | ||
| 13 | + <key>CFBundleInfoDictionaryVersion</key> | ||
| 14 | + <string>6.0</string> | ||
| 15 | + <key>CFBundleName</key> | ||
| 16 | + <string>${PRODUCT_NAME}</string> | ||
| 17 | + <key>CFBundlePackageType</key> | ||
| 18 | + <string>APPL</string> | ||
| 19 | + <key>CFBundleShortVersionString</key> | ||
| 20 | + <string>1.0</string> | ||
| 21 | + <key>CFBundleSignature</key> | ||
| 22 | + <string>????</string> | ||
| 23 | + <key>CFBundleVersion</key> | ||
| 24 | + <string>1.0</string> | ||
| 25 | + <key>LSRequiresIPhoneOS</key> | ||
| 26 | + <true/> | ||
| 27 | + <key>UILaunchStoryboardName</key> | ||
| 28 | + <string>LaunchScreen</string> | ||
| 29 | + <key>UIMainStoryboardFile</key> | ||
| 30 | + <string>Main</string> | ||
| 31 | + <key>UIRequiredDeviceCapabilities</key> | ||
| 32 | + <array> | ||
| 33 | + <string>armv7</string> | ||
| 34 | + </array> | ||
| 35 | + <key>UISupportedInterfaceOrientations</key> | ||
| 36 | + <array> | ||
| 37 | + <string>UIInterfaceOrientationPortrait</string> | ||
| 38 | + <string>UIInterfaceOrientationLandscapeLeft</string> | ||
| 39 | + <string>UIInterfaceOrientationLandscapeRight</string> | ||
| 40 | + </array> | ||
| 41 | + <key>UISupportedInterfaceOrientations~ipad</key> | ||
| 42 | + <array> | ||
| 43 | + <string>UIInterfaceOrientationPortrait</string> | ||
| 44 | + <string>UIInterfaceOrientationPortraitUpsideDown</string> | ||
| 45 | + <string>UIInterfaceOrientationLandscapeLeft</string> | ||
| 46 | + <string>UIInterfaceOrientationLandscapeRight</string> | ||
| 47 | + </array> | ||
| 48 | +</dict> | ||
| 49 | +</plist> |
Example/CNLiveBPersonalVerificationModule/CNLiveBPersonalVerificationModule-Prefix.pch
0 → 100644
| 1 | +// | ||
| 2 | +// Prefix header | ||
| 3 | +// | ||
| 4 | +// The contents of this file are implicitly included at the beginning of every source file. | ||
| 5 | +// | ||
| 6 | + | ||
| 7 | +#import <Availability.h> | ||
| 8 | + | ||
| 9 | +#ifndef __IPHONE_5_0 | ||
| 10 | +#warning "This project uses features only available in iOS SDK 5.0 and later." | ||
| 11 | +#endif | ||
| 12 | + | ||
| 13 | +#ifdef __OBJC__ | ||
| 14 | + @import UIKit; | ||
| 15 | + @import Foundation; | ||
| 16 | +#endif |
Example/CNLiveBPersonalVerificationModule/Images.xcassets/AppIcon.appiconset/Contents.json
0 → 100644
| 1 | +{ | ||
| 2 | + "images" : [ | ||
| 3 | + { | ||
| 4 | + "idiom" : "iphone", | ||
| 5 | + "size" : "20x20", | ||
| 6 | + "scale" : "2x" | ||
| 7 | + }, | ||
| 8 | + { | ||
| 9 | + "idiom" : "iphone", | ||
| 10 | + "size" : "20x20", | ||
| 11 | + "scale" : "3x" | ||
| 12 | + }, | ||
| 13 | + { | ||
| 14 | + "idiom" : "iphone", | ||
| 15 | + "size" : "29x29", | ||
| 16 | + "scale" : "2x" | ||
| 17 | + }, | ||
| 18 | + { | ||
| 19 | + "idiom" : "iphone", | ||
| 20 | + "size" : "29x29", | ||
| 21 | + "scale" : "3x" | ||
| 22 | + }, | ||
| 23 | + { | ||
| 24 | + "idiom" : "iphone", | ||
| 25 | + "size" : "40x40", | ||
| 26 | + "scale" : "2x" | ||
| 27 | + }, | ||
| 28 | + { | ||
| 29 | + "idiom" : "iphone", | ||
| 30 | + "size" : "40x40", | ||
| 31 | + "scale" : "3x" | ||
| 32 | + }, | ||
| 33 | + { | ||
| 34 | + "idiom" : "iphone", | ||
| 35 | + "size" : "60x60", | ||
| 36 | + "scale" : "2x" | ||
| 37 | + }, | ||
| 38 | + { | ||
| 39 | + "idiom" : "iphone", | ||
| 40 | + "size" : "60x60", | ||
| 41 | + "scale" : "3x" | ||
| 42 | + }, | ||
| 43 | + { | ||
| 44 | + "idiom" : "ipad", | ||
| 45 | + "size" : "20x20", | ||
| 46 | + "scale" : "1x" | ||
| 47 | + }, | ||
| 48 | + { | ||
| 49 | + "idiom" : "ipad", | ||
| 50 | + "size" : "20x20", | ||
| 51 | + "scale" : "2x" | ||
| 52 | + }, | ||
| 53 | + { | ||
| 54 | + "idiom" : "ipad", | ||
| 55 | + "size" : "29x29", | ||
| 56 | + "scale" : "1x" | ||
| 57 | + }, | ||
| 58 | + { | ||
| 59 | + "idiom" : "ipad", | ||
| 60 | + "size" : "29x29", | ||
| 61 | + "scale" : "2x" | ||
| 62 | + }, | ||
| 63 | + { | ||
| 64 | + "idiom" : "ipad", | ||
| 65 | + "size" : "40x40", | ||
| 66 | + "scale" : "1x" | ||
| 67 | + }, | ||
| 68 | + { | ||
| 69 | + "idiom" : "ipad", | ||
| 70 | + "size" : "40x40", | ||
| 71 | + "scale" : "2x" | ||
| 72 | + }, | ||
| 73 | + { | ||
| 74 | + "idiom" : "ipad", | ||
| 75 | + "size" : "76x76", | ||
| 76 | + "scale" : "1x" | ||
| 77 | + }, | ||
| 78 | + { | ||
| 79 | + "idiom" : "ipad", | ||
| 80 | + "size" : "76x76", | ||
| 81 | + "scale" : "2x" | ||
| 82 | + }, | ||
| 83 | + { | ||
| 84 | + "idiom" : "ipad", | ||
| 85 | + "size" : "83.5x83.5", | ||
| 86 | + "scale" : "2x" | ||
| 87 | + }, | ||
| 88 | + { | ||
| 89 | + "idiom" : "ios-marketing", | ||
| 90 | + "size" : "1024x1024", | ||
| 91 | + "scale" : "1x" | ||
| 92 | + } | ||
| 93 | + ], | ||
| 94 | + "info" : { | ||
| 95 | + "version" : 1, | ||
| 96 | + "author" : "xcode" | ||
| 97 | + } | ||
| 98 | +} |
Example/CNLiveBPersonalVerificationModule/en.lproj/InfoPlist.strings
0 → 100644
Example/CNLiveBPersonalVerificationModule/main.m
0 → 100644
| 1 | +// | ||
| 2 | +// main.m | ||
| 3 | +// CNLiveBPersonalVerificationModule | ||
| 4 | +// | ||
| 5 | +// Created by dawanzi on 04/06/2020. | ||
| 6 | +// Copyright (c) 2020 dawanzi. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +@import UIKit; | ||
| 10 | +#import "CNLIVEAppDelegate.h" | ||
| 11 | + | ||
| 12 | +int main(int argc, char * argv[]) | ||
| 13 | +{ | ||
| 14 | + @autoreleasepool { | ||
| 15 | + return UIApplicationMain(argc, argv, nil, NSStringFromClass([CNLIVEAppDelegate class])); | ||
| 16 | + } | ||
| 17 | +} |
Example/Podfile
0 → 100644
| 1 | +use_frameworks! | ||
| 2 | +source 'https://github.com/CocoaPods/Specs.git' | ||
| 3 | +source 'http://bj.gitlab.cnlive.com/ios-team/CNLiveRepos.git' | ||
| 4 | +platform :ios, '9.0' | ||
| 5 | + | ||
| 6 | +target 'CNLiveBPersonalVerificationModule_Example' do | ||
| 7 | + pod 'CNLiveBPersonalVerificationModule', :path => '../' | ||
| 8 | + | ||
| 9 | + target 'CNLiveBPersonalVerificationModule_Tests' do | ||
| 10 | + inherit! :search_paths | ||
| 11 | + | ||
| 12 | + | ||
| 13 | + end | ||
| 14 | +end |
Example/Tests/Tests-Info.plist
0 → 100644
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | ||
| 2 | +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| 3 | +<plist version="1.0"> | ||
| 4 | +<dict> | ||
| 5 | + <key>CFBundleDevelopmentRegion</key> | ||
| 6 | + <string>en</string> | ||
| 7 | + <key>CFBundleExecutable</key> | ||
| 8 | + <string>${EXECUTABLE_NAME}</string> | ||
| 9 | + <key>CFBundleIdentifier</key> | ||
| 10 | + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> | ||
| 11 | + <key>CFBundleInfoDictionaryVersion</key> | ||
| 12 | + <string>6.0</string> | ||
| 13 | + <key>CFBundlePackageType</key> | ||
| 14 | + <string>BNDL</string> | ||
| 15 | + <key>CFBundleShortVersionString</key> | ||
| 16 | + <string>1.0</string> | ||
| 17 | + <key>CFBundleSignature</key> | ||
| 18 | + <string>????</string> | ||
| 19 | + <key>CFBundleVersion</key> | ||
| 20 | + <string>1</string> | ||
| 21 | +</dict> | ||
| 22 | +</plist> |
Example/Tests/Tests-Prefix.pch
0 → 100644
Example/Tests/Tests.m
0 → 100644
| 1 | +// | ||
| 2 | +// CNLiveBPersonalVerificationModuleTests.m | ||
| 3 | +// CNLiveBPersonalVerificationModuleTests | ||
| 4 | +// | ||
| 5 | +// Created by dawanzi on 04/06/2020. | ||
| 6 | +// Copyright (c) 2020 dawanzi. All rights reserved. | ||
| 7 | +// | ||
| 8 | + | ||
| 9 | +@import XCTest; | ||
| 10 | + | ||
| 11 | +@interface Tests : XCTestCase | ||
| 12 | + | ||
| 13 | +@end | ||
| 14 | + | ||
| 15 | +@implementation Tests | ||
| 16 | + | ||
| 17 | +- (void)setUp | ||
| 18 | +{ | ||
| 19 | + [super setUp]; | ||
| 20 | + // Put setup code here. This method is called before the invocation of each test method in the class. | ||
| 21 | +} | ||
| 22 | + | ||
| 23 | +- (void)tearDown | ||
| 24 | +{ | ||
| 25 | + // Put teardown code here. This method is called after the invocation of each test method in the class. | ||
| 26 | + [super tearDown]; | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +- (void)testExample | ||
| 30 | +{ | ||
| 31 | + XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); | ||
| 32 | +} | ||
| 33 | + | ||
| 34 | +@end | ||
| 35 | + |
Example/Tests/en.lproj/InfoPlist.strings
0 → 100644
LICENSE
0 → 100644
| 1 | +Copyright (c) 2020 dawanzi <1427945373@qq.com> | ||
| 2 | + | ||
| 3 | +Permission is hereby granted, free of charge, to any person obtaining a copy | ||
| 4 | +of this software and associated documentation files (the "Software"), to deal | ||
| 5 | +in the Software without restriction, including without limitation the rights | ||
| 6 | +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
| 7 | +copies of the Software, and to permit persons to whom the Software is | ||
| 8 | +furnished to do so, subject to the following conditions: | ||
| 9 | + | ||
| 10 | +The above copyright notice and this permission notice shall be included in | ||
| 11 | +all copies or substantial portions of the Software. | ||
| 12 | + | ||
| 13 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
| 14 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
| 15 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
| 16 | +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
| 17 | +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
| 18 | +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
| 19 | +THE SOFTWARE. |
README.md
| 1 | -B端个人资料验证 | ||
| 2 | \ No newline at end of file | 1 | \ No newline at end of file |
| 2 | +# CNLiveBPersonalVerificationModule | ||
| 3 | + | ||
| 4 | +[](https://travis-ci.org/dawanzi/CNLiveBPersonalVerificationModule) | ||
| 5 | +[](https://cocoapods.org/pods/CNLiveBPersonalVerificationModule) | ||
| 6 | +[](https://cocoapods.org/pods/CNLiveBPersonalVerificationModule) | ||
| 7 | +[](https://cocoapods.org/pods/CNLiveBPersonalVerificationModule) | ||
| 8 | + | ||
| 9 | +## Example | ||
| 10 | + | ||
| 11 | +To run the example project, clone the repo, and run `pod install` from the Example directory first. | ||
| 12 | + | ||
| 13 | +## Requirements | ||
| 14 | + | ||
| 15 | +## Installation | ||
| 16 | + | ||
| 17 | +CNLiveBPersonalVerificationModule is available through [CocoaPods](https://cocoapods.org). To install | ||
| 18 | +it, simply add the following line to your Podfile: | ||
| 19 | + | ||
| 20 | +```ruby | ||
| 21 | +pod 'CNLiveBPersonalVerificationModule' | ||
| 22 | +``` | ||
| 23 | + | ||
| 24 | +## Author | ||
| 25 | + | ||
| 26 | +dawanzi, 1427945373@qq.com | ||
| 27 | + | ||
| 28 | +## License | ||
| 29 | + | ||
| 30 | +CNLiveBPersonalVerificationModule is available under the MIT license. See the LICENSE file for more info. |
_Pods.xcodeproj
0 → 120000