RGR*_*GRG 14 iphone xcode objective-c ios
我们使用的是过去2年的Zbar条形码阅读器.使用iOS 7和Xcode 5,在扫描5个条形码后,应用程序达到了iOS 7设备的100%cpu使用率(我可以在Xcode调试模式下看到)并且应用程序的响应速度降低.我们从未在早期的iOS版本中遇到问题,一切正常.
在iOS 7中与相机启动相关的事情是否有所改变,而ZBar SDK未更新?是否有其他人面临与iOS 7相同的问题?
小智 18
解决了这样做:在 viewdidload
readerqr = [ZBarReaderViewController new];
readerqr.readerDelegate = self;
readerqr.showsHelpOnFail = NO;
ZBarImageScanner *scanner = readerqr.scanner;
[scanner setSymbology: 0
config: ZBAR_CFG_ENABLE
to: 0];
[scanner setSymbology: ZBAR_QRCODE
config: ZBAR_CFG_ENABLE
to: 1];
// you can use this to support the simulator
if(TARGET_IPHONE_SIMULATOR) {
cameraSim = [[ZBarCameraSimulator alloc]
initWithViewController: self];
cameraSim.readerView = readerView;
}
Run Code Online (Sandbox Code Playgroud)
创建ZBarReaderViewController *readerqr;为viewcontroller的属性.
使用它:
-(void) showqr:(id)sender
{
[self presentViewController:readerqr animated:YES completion:nil];
return;
}
Run Code Online (Sandbox Code Playgroud)
这样工作,没有泄漏,没有cpu 100%
小智 7
看到同样的问题后,
我搬了
ZBarReaderViewController
至
ZBarReaderView
但令人失望的是,如果您在ZBarReaderViewController中使用Overlay等功能,则必须重新编码所有功能,并且必须手动执行启动和停止扫描程序等操作.
但实际上,在IBAction中你需要这样的东西:
ZBarReaderView *reader = [ZBarReaderView new];
[self.view addSubview:reader];
reader.readerDelegate = self;
reader.tracksSymbols=YES;
ZBarImageScanner *scanner = reader.scanner;
reader.tag = 99999999;
Run Code Online (Sandbox Code Playgroud)
//此处的重要部分是开始扫描
[reader start];
Run Code Online (Sandbox Code Playgroud)
另外,请记住将标题中的委托更改为ZBarReaderViewDelegate
此外,至少在我的代码中被调用的委托"方法"现在是(相对于imagePickerController)
-(void) readerView: (ZBarReaderView*) view
didReadSymbols: (ZBarSymbolSet*) syms
fromImage: (UIImage*) img
{
for(ZBarSymbol *sym in syms) {
[view stop];
[self closeCameraScanner];
// I am also setting reader to NIL but I don't really know if this is necessary or not.
reader=nil;
}
}
-(void)closeCameraScanner{
UIView * v = [self.view viewWithTag:99999999];
if (nil != v) {
[v removeFromSuperview];
}
[self.view endEditing:YES];
}
Run Code Online (Sandbox Code Playgroud)
所以,这是一种快速而肮脏的方法.我有一些额外的代码用于手动创建叠加层和限制扫描裁剪,但只要简单地让它运行,这对我来说就是诀窍.
| 归档时间: |
|
| 查看次数: |
10758 次 |
| 最近记录: |