Skip to content

idhong/BMScan

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BMScan

对系统扫描功能的封装,集成了扫描相关 UI 和自定义识别区域等功能,最简单的使用需要继承于 BMScanController 或者 BMScanDefaultCotroller即可。

待加入的功能

  • 图片中的二维码识别
  • 生成功二维码
  • 如果您认为有必要的功能,欢迎提出
  • ...

Version License Platform Support Weibo GitHub stars

效果图

其中半透明区域颜色扫描区域尺寸和位置扫描区域4脚的颜色扫描线条的颜色和样式均可以自定义。

CocoaPods

CocoaPods is the recommended way to add BMScan to your project. Add a pod entry for BMScan to your Podfile.

pod 'BMScan', '~> 0.0.3'

Second, install BMScan into your project:

pod install

使用说明

只需要扫描功能

  • 创建扫描控制器继承于 BMScanController
  • 配置 BMScanDelegate 代理
  • 当扫描到内容时回会触发下面的代理方法
- (void)scanController:(BMScanController *)scanController captureWithValueString:(NSString *)valueString;
  • 如果想在开始扫描和结束扫描时做额外的操作可以重写下面的方法,需要先调用 super,已用NS_REQUIRES_SUPER 修饰
/**
 开始扫描
 */
- (void)startScanning NS_REQUIRES_SUPER;

/**
 结束扫描
 */
- (void)closureScanning NS_REQUIRES_SUPER;

自定义扫描 UI

  • 如果需要自定义扫描UI,扫描动画可以继承于 BMScanDefaultCotroller 可轻松实现常见功能,也可以完全继于BMScanDelegate 自行实现
  • 创建扫描控制器继承于 BMScanDefaultCotroller
  • 配置 BMScanDelegateBMScanDefaultDataSource 代理
  • 参考代理中的方法实现相关功能即可

自定义透明扫描区域

/**
 扫描区域 X 值

 @param scanController 扫描控制器
 @return X 值
 */
- (CGFloat)areaXInscanController:(BMScanController *)scanController;

/**
 扫描区域 Y 值
 
 @param scanController 扫描控制器
 @return Y 值
 */
- (CGFloat)areaYInscanController:(BMScanController *)scanController;

/**
 扫描区域 Width 值
 
 @param scanController 扫描控制器
 @return Width 值
 */
- (CGFloat)areaWidthInscanController:(BMScanController *)scanController;

/**
 扫描区域 Height 值
 
 @param scanController 扫描控制器
 @return Height 值
 */
 - (CGFloat)areaXHeightInscanController:(BMScanController *)scanController;

标题距扫描区域的距离

/**
 标题距扫描区域的距离

 @param scanController 扫描控制器
 @return 距离
 */
- (CGFloat)areaTitleDistanceHeightInscanController:(BMScanController *)scanController;

非扫描区域的颜色(半透明区域)

/**
 标题距扫描区域的距离

 @param scanController 扫描控制器
 @return 距离
 */
- (CGFloat)areaTitleDistanceHeightInscanController:(BMScanController *)scanController;

4个拐脚的颜色

/**
 脚颜色

 @param scanController 扫描控制器
 @return 颜色值
 */
- (UIColor *)feetColorInscanController:(BMScanController *)scanController;

4个拐脚的颜色分别自定义

/**
 左上脚颜色
 
 @param scanController 扫描控制器
 @return 颜色值
 */
- (UIColor *)leftTopColorInscanController:(BMScanController *)scanController;

/**
 左下脚颜色
 
 @param scanController 扫描控制器
 @return 颜色值
 */
- (UIColor *)leftBottonColorInscanController:(BMScanController *)scanController;

/**
 右上脚颜色
 
 @param scanController 扫描控制器
 @return 颜色值
 */
- (UIColor *)rightTopInscanController:(BMScanController *)scanController;

/**
 右下脚颜色
 
 @param scanController 扫描控制器
 @return 颜色值
 */
- (UIColor *)rightBottonInscanController:(BMScanController *)scanController;

扫描线颜色

/**
 扫描线条颜色

 @param scanController 扫描控制器
 @return 颜色值
 */
- (UIColor *)scanfLinInscanController:(BMScanController *)scanController;

扫描条动画

待补充更多样式和自定义样式

/**
 扫描线条动画

 @param scanController 扫描控制器
 @return 动画值
 */
- (BMScanLinViewAnimation)scanLinViewAnimationInscanController:(BMScanController *)scanController;

扫描线条类型

/**
 扫描线条类型

 @param scanController 扫描控制器
 @return 扫描线条类型
 */
- (BMScanLin)scanLinInscanController:(BMScanController *)scanController;

可识别区域

可以继于BMScanDefaultCotroller不需要考虑,内部会有扫描区域来确定可识别区域,如果有特殊要求可实现BMScanDataSource协议的如下方法即可

/**
 设置可以识别区域

 @param scanController 扫描控制器
 @return 可识别区域
 */
- (CGRect)rectOfInterestInScanController:(BMScanController *)scanController;

方法预览

Contacts

项目中示例代码暂未处理,只是简单的实现了部分演示,感谢Color-Picker-for-iOS

Sina : @梁大红
blog : @idhong
有任何问题可与我联系

License

BMScan is released under the MIT license.

About

BMScan,Scan,AVFoundation,ZXing,QRCode,BarCode,Code,ZBar

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 92.4%
  • Shell 7.1%
  • Ruby 0.5%