Skip to content

一个简单的二维码和条码扫描器,有一套自定义的扫描动画以及界面,支持相机缩放,还可以生成和识别二维码。(A simple QR code and barcode scanner, which has a set of custom scanning animation and interface, supports camera zooming, and can generate and identify QR code.)

License

chenxing640/DYFCodeScanner

Repository files navigation

如果此项目能帮助到你,就请你给一颗星。谢谢!(If this project can help you, please give it a star. Thanks!)

License MIT  CocoaPods  CocoaPods 

DYFCodeScanner

一个简单的二维码和条码扫描器,有一套自定义的扫描动画以及界面,支持相机缩放,还可以生成和识别二维码。(A simple QR code and barcode scanner, which has a set of custom scanning animation and interface, supports camera zooming, and can generate and identify QR code.)

Group (ID:614799921)

Installation

Using CocoaPods:

pod 'DYFCodeScanner', '~> 1.2.1'

Or

# Install lastest version.
pod 'DYFCodeScanner'

Preview

Usage

  • 添加隐私 (Add Privacy)
<key>NSCameraUsageDescription</key>
<string>扫描二维码/条形码,允许App访问您的相机?</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>存取照片,允许App访问您的相册?</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>存取照片,允许App访问您的相册?</string>
  • 导入头文件 (Import Header)
#import "DYFCodeScan.h"
  • 扫描二维码/条形码 (Scanning QRcode / Barcode)
  1. 支持push和模态两种场景过渡。 (Supporting push or modal transition.)
  2. 根据项目的需求,选择之一即可。(According to the needs of the project, you can choose one of them.)
  3. 当你要推进视图控制器,你可以选择隐藏或者不隐藏导航条。(When you want to push the view controller, you can choose to or not to hide the navigation bar.)
- (IBAction)scan:(id)sender {
    static BOOL shouldPush      = YES;
    static BOOL naviBarHidden   = YES;

    DYFCodeScanViewController *codesVC = [[DYFCodeScanViewController alloc] init];
    codesVC.scanType            = DYFCodeScanTypeAll;
    codesVC.navigationTitle     = @"二维码/条形码";
    codesVC.tipString           = [NSString stringWithFormat:@"将二维码/条形码放入框内,即自动扫描"];
    codesVC.resultHandler       = ^(BOOL result, NSString *stringValue) {
        if (result) {
            [self showResult:stringValue];
        } else {
            NSLog(@"QRCode Message: %@", stringValue);
        }
    };

    if (shouldPush) {
        codesVC.navigationBarHidden = naviBarHidden = !naviBarHidden;
        [self.navigationController pushViewController:codesVC animated:YES];
    } else {
        [self presentViewController:codesVC animated:YES completion:NULL];
    }

    shouldPush = !shouldPush;
}

- (void)showResult:(NSString *)value {
    if (self.m_textView.text.length > 0) {
        self.m_textView.text = @"";
    }
    self.m_textView.text = value;
}
  • 生成二维码 (Generating QR code)
  1. 生成带中心图像的二维码 (Generating QR code that contains center image)
- (IBAction)generateQRCode:(id)sender {
    CGRect rect = self.qrc_imageView.frame;
    DYFQRCodeImageView *imageView = [DYFQRCodeImageView createWithFrame:rect stringValue:@"http://img.shields.io/cocoapods/v/DYFAssistiveTouchView.svg?style=flat" centerImage:[UIImage imageNamed:@"cat49334.jpg"]];
    self.qrc_imageView.image = imageView.image;
}
  1. 生成带颜色的二维码 (Generating QR code that contains backgroudColor and foregroudColor)
- (IBAction)generateColorQRCode:(id)sender {
    CGRect rect = self.cqrc_imageView.frame;
    DYFQRCodeImageView *imageView = [DYFQRCodeImageView createWithFrame:rect stringValue:@"http://img.shields.io/cocoapods/p/DYFAssistiveTouchView.svg?style=flat" backgroudColor:[UIColor grayColor] foregroudColor:[UIColor greenColor]];
    self.cqrc_imageView.image = imageView.image;
}
  1. 生成带中心图像颜色的二维码 (Generating QR code that contains center image, backgroudColor and foregroudColor)
DYFQRCodeImageView *imageView = [DYFQRCodeImageView createWithFrame:CGRectMake(30, 88, 200, 200) stringValue:@"https://github.com/chenxing640/DYFAuthIDAndGestureLock" backgroudColor:[UIColor grayColor] foregroudColor:[UIColor greenColor] centerImage:[UIImage imageNamed:@"cat49334.jpg"]];
[self.view addSubview:imageView];
  • 识别二维码 (Recognizing QR code)
- (void)recognizeQRCode:(UILongPressGestureRecognizer *)recognizer {
    UIImage *qrcodeImage = ((DYFQRCodeImageView *)recognizer.view).image;
    NSString *stringValue = [qrcodeImage yf_stringValue];
    #if DEBUG
        NSLog(@"stringValue: %@", stringValue);
    #endif
}

Code Sample

About

一个简单的二维码和条码扫描器,有一套自定义的扫描动画以及界面,支持相机缩放,还可以生成和识别二维码。(A simple QR code and barcode scanner, which has a set of custom scanning animation and interface, supports camera zooming, and can generate and identify QR code.)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published