iOS - 二维码生成、扫描及页面跳转

主要内容的介绍

  • 普通二维码生成
  • 彩色二维码生成
  • 带有小图标二维码生成
  • 扫描二维码的自定义
  • 是否开启闪光灯
  • 从相册中获取二维码
  • 扫描成功之后提示音
  • 扫描成功之后的界面之间的跳转
  • 扫描二维码界面采取了微信二维码界面的布局

SGQRCode 集成

  1. CocoaPods 导入 pod ‘SGQRCode’
  2. 下载、拖拽 “SGQRCode” 文件夹到工程中

代码介绍 (详细使用,请参考 Demo)

  1. 在 info.plist 中添加以下字段

NSCameraUsageDescription (相机权限访问)
NSPhotoLibraryUsageDescription (相册权限访问)
```

  1. 二维码生成
    1. 普通二维码生成
imageView.image = [SGQRCodeGenerateManager SG_generateWithDefaultQRCodeData:@"https://github.com/kingsic" imageViewWidth:imageViewW];
2. logo 二维码生成
```

imageView.image = [SGQRCodeGenerateManager SG_generateWithLogoQRCodeData:@“https://github.com/kingsic” logoImageName:@“icon_image” logoScaleToSuperView:scale];
3. 彩色二维码生成
imageView.image = [SGQRCodeGenerateManager SG_generateWithColorQRCodeData:@“https://github.com/kingsic” backgroundColor:[CIColor colorWithRed:1 green:0 blue:0.8] mainColor:[CIColor colorWithRed:0.3 green:0.2 blue:0.4]];
```

  1. 二维码扫描

  • (void)viewDidLoad {
    [super viewDidLoad];

    /// 扫描二维码创建
    SGQRCodeScanManager *scanManager = [SGQRCodeScanManager sharedManager];
    NSArray *arr = @[AVMetadataObjectTypeQRCode, AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code];
    // AVCaptureSessionPreset1920x1080 推荐使用,对于小型的二维码读取率较高
    [scanManager SG_setupSessionPreset:AVCaptureSessionPreset1920x1080 metadataObjectTypes:arr currentController:self];
    scanManager.delegate = self;

    /// 从相册中读取二维码方法
    SGQRCodeAlbumManager *albumManager = [SGQRCodeAlbumManager sharedManager];
    [albumManager SG_readQRCodeFromAlbumWithCurrentController:self];
    albumManager.delegate = self;
    }

    扫面二维码的代理方法
    
    
    

/// 二维码扫描获取数据的回调方法

  • (void)QRCodeScanManager:(SGQRCodeScanManager *)scanManager didOutputMetadataObjects:(NSArray *)metadataObjects;

    从相册中读取二维码的代理方法
    
    
    

    /// 图片选择控制器取消按钮的点击回调方法

    • (void)QRCodeAlbumManagerDidCancelWithImagePickerController:(SGQRCodeAlbumManager *)albumManager;

    /// 图片选择控制器选取图片完成之后的回调方法

    • (void)QRCodeAlbumManager:(SGQRCodeAlbumManager *)albumManager didFinishPickingMediaWithResult:(NSString *)result;

效果图

iOS - 二维码生成、扫描及页面跳转_第1张图片iOS - 二维码生成、扫描及页面跳转_第2张图片iOS - 二维码生成、扫描及页面跳转_第3张图片iOS - 二维码生成、扫描及页面跳转_第4张图片
参考:https://github.com/kingsic/SGQRCode

你可能感兴趣的:(IOS开发)