300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > iOS高仿新版微信扫一扫源码

iOS高仿新版微信扫一扫源码

时间:2022-01-24 12:59:09

相关推荐

iOS高仿新版微信扫一扫源码

iOS版本高仿新版微信V8.0.6扫一扫。支持全屏扫码,支持识别多个二维码,支持选择指定二维码,支持从相册选取二维码,支持光线暗打开手电筒。无需多余的文件,一个Controller即可搞定,可继承,可复用,可自定义。

部分代码如下:

/*** 根据光线强度自动显示手电筒图标*/- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {CFDictionaryRef metadataDict = CMCopyDictionaryOfAttachments(NULL, sampleBuffer, kCMAttachmentMode_ShouldPropagate);NSDictionary *metadata = [[NSMutableDictionary alloc] initWithDictionary:(__bridge NSDictionary*)metadataDict];CFRelease(metadataDict);NSDictionary *exifMetadata = [[metadata objectForKey:(NSString *)kCGImagePropertyExifDictionary] mutableCopy];float brightnessValue = [[exifMetadata objectForKey:(NSString *)kCGImagePropertyExifBrightnessValue] floatValue];dispatch_async(dispatch_get_main_queue(), ^{if (brightnessValue<brightnessThresholdValue) {self.flashBtn.hidden = NO;}else{if (!self.flashBtn.isSelected) {self.flashBtn.hidden = YES;}}});}

/*** 识别结果处理*/- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection {if (metadataObjects != nil && metadataObjects.count > 0) {[self stopRunning];UIImpactFeedbackGenerator*impactLight = [[UIImpactFeedbackGenerator alloc]initWithStyle:UIImpactFeedbackStyleLight];[impactLight impactOccurred];UIView * maskView = [self maskView:metadataObjects.count > 1];maskView.alpha = 0;[self.view addSubview:maskView];[UIView animateWithDuration:0.6 animations:^{maskView.alpha = 1;}];ZTScanBarInfo *barInfo = [ZTScanBarInfo new];barInfo.codeView = maskView;barInfo.codeResult = @"";[self.barInfos addObject:barInfo];[metadataObjects enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {AVMetadataMachineReadableCodeObject * code = (AVMetadataMachineReadableCodeObject*)[self.videoPreviewLayer transformedMetadataObjectForMetadataObject:obj];UIButton *codeBtn = [self codeButtonWithFrame:code.bounds icon:metadataObjects.count > 1];codeBtn.tag = idx+1;[self.view addSubview:codeBtn];ZTScanBarInfo *barInfo = [ZTScanBarInfo new];barInfo.codeView = codeBtn;barInfo.codeResult = code.stringValue;[self.barInfos addObject:barInfo];}];self.backBtn.hidden = YES;if(metadataObjects.count == 1){dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.8 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ZTScanBarInfo *barInfo = self.barInfos[1];NSLog(@"%@",barInfo.codeResult);[self handelCodeResult:barInfo.codeResult];});}} else {NSLog(@"暂未识别出扫描的二维码");}}

效果图如下:

下载链接如下:

/download/z1332291552/19764277

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。