ZBar是一个开源库,用于扫描、读取二维码和条形码。支持的二维码包括:EAN/UPC,QR等。可以扫描含有链接的二维码,并且读取到结果后直接跳转到对应的链接。
调试中出现。
本次学习做了两个功能,一个是对二维码的扫描,另一个是生成二维码。
对二维码扫描要在真机测试。
要添加的库
QuartzCore.framework/CoreVideo.framework/CoreMedia.framework/AVFoundation.framework
libiconv.dylib/SenTestingKit.framework
添加完后就可以在自己的工程中使用了。
打开摄像头开始扫描的方法
- (IBAction)button:(id)sender {
/*扫描二维码部分:
导入ZBarSDK文件并引入一下框架
AVFoundation.framework
CoreMedia.framework
CoreVideo.framework
QuartzCore.framework
libiconv.dylib
引入头文件#import “ZBarSDK.h” 即可使用
当找到条形码时,会执行代理方法
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
最后读取并显示了条形码的图片和内容。*/
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
ZBarImageScanner *scanner = reader.scanner;
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
[self presentModalViewController: reader
animated: YES];
[reader release];
}
扫描完成会调用如下方法,我直接推入下一级视图
- (void) imagePickerController: (UIImagePickerController*) reader
didFinishPickingMediaWithInfo: (NSDictionary*) info{
NSLog(@"ok");
id<NSFastEnumeration> results =
[info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
break;
[reader dismissModalViewControllerAnimated: YES];
[[NSUserDefaults standardUserDefaults] setObject:symbol.data forKey:@"content"];
DetailViewController *detail = [[[DetailViewController alloc]init]autorelease];
[self.navigationController pushViewController:detail animated:YES];
}
想要将字符串转成二维码图片,只要引入头文件便可使用
imageview.image = [QRCodeGenerator qrImageForString:text.text imageSize:imageview.bounds.size.width];
file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/Shared/Cordova/Frameworks/Cordova.Framework/Cordova for architecture armv7s.
出现如上错误,解决办法把,target-build setting-architecture-build active architecture only勾选为yes。
在真机运行出现如下错误
reason: 'Could not instantiate class named NSLayoutConstraint
意思是在老的ios设备没有Autolayout机制。