对系统扫描功能的封装,集成了扫描相关 UI 和自定义识别区域等功能,最简单的使用需要继承于
BMScanController
或者BMScanDefaultCotroller
即可。
- 图片中的二维码识别
- 生成功二维码
- 如果您认为有必要的功能,欢迎提出
- ...
其中
半透明区域颜色
,扫描区域尺寸和位置
,扫描区域4脚的颜色
,扫描线条的颜色和样式
均可以自定义。
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,扫描动画可以继承于
BMScanDefaultCotroller
可轻松实现常见功能,也可以完全继于BMScanDelegate
自行实现 - 创建扫描控制器继承于
BMScanDefaultCotroller
- 配置
BMScanDelegate
和BMScanDefaultDataSource
代理 - 参考代理中的方法实现相关功能即可
/**
扫描区域 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;
/**
脚颜色
@param scanController 扫描控制器
@return 颜色值
*/
- (UIColor *)feetColorInscanController:(BMScanController *)scanController;
/**
左上脚颜色
@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;
项目中示例代码暂未处理,只是简单的实现了部分演示,感谢Color-Picker-for-iOS
Sina : @梁大红
blog : @idhong
BMScan is released under the MIT license.