Iphone 如何更改ZBar阅读器的框架?
好的,我正在使用ZBar SDK扫描iPhone应用程序中的条形码。我已经成功地实现了示例代码,但现在我想更改扫描仪视图的框架(即:屏幕大小的一半)。我尝试在viewDidLoad中设置读者视图的框架,但它会自行调整大小。 我知道这将是我刚刚错过的非常简单的事情之一,但任何帮助都将不胜感激。干杯 编辑:我成功了。这是我的密码:Iphone 如何更改ZBar阅读器的框架?,iphone,ios,objective-c,barcode-scanner,zbar-sdk,Iphone,Ios,Objective C,Barcode Scanner,Zbar Sdk,好的,我正在使用ZBar SDK扫描iPhone应用程序中的条形码。我已经成功地实现了示例代码,但现在我想更改扫描仪视图的框架(即:屏幕大小的一半)。我尝试在viewDidLoad中设置读者视图的框架,但它会自行调整大小。 我知道这将是我刚刚错过的非常简单的事情之一,但任何帮助都将不胜感激。干杯 编辑:我成功了。这是我的密码: ZBarReaderViewController *reader = [ZBarReaderViewController new]; reader.readerDeleg
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
ZBarImageScanner *scanner = reader.scanner;
[reader setShowsZBarControls:NO];
[reader.readerView setScanCrop:(CGRect){ { 0, 0 }, { 0.43, 1 } }];
[reader.readerView start];
[self.view addSubview:reader.view];
overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
[listTableView setFrame:CGRectMake(0, 208, 320, 208)];
[overlayView addSubview:listTableView];
[self.view addSubview:overlayView];
您可以创建自己的视图和视图控制器,并将ZBarReaderViewController的视图添加为自己视图的子视图 我算出来了。这就是我必须做的:
这是非常困难和不直观的,并打破了苹果的许多代码设计准则,但最终仍然是可行的。修改扫描视图控制器属性的另一种方法是导入ZBarSDK项目并自行编译和链接,而不是使用二进制版本的SDK。然后,您可以对视图控制器进行所需的任何更改(请记住,他们的许可证……可能应该先阅读此内容)试试这个 它可能会帮助您:
ZBarReaderViewController *reader= [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMaskAll;
ZBarImageScanner *scanner = reader.scanner;
// TODO: (optional) additional reader configuration here
// reader.showsCameraControls = NO; // for UIImagePickerController
reader.showsZBarControls = NO;
// EXAMPLE: disable rarely used I2/5 to improve performance
[scanner setSymbology:ZBAR_I25|ZBAR_QRCODE
config: ZBAR_CFG_ENABLE
to: 0];
[reader viewDidLoad];
[reader viewWillAppear:NO];
[reader viewDidAppear:NO];
[self.viewScan addSubview:reader.view];
这里,self.viewScan
是当前控制器的任何视图
所以现在扫描区域
self.viewScan
view.最好的方法是在sampleView中:
UIView *view = [self sampleView];
CALayer *viewLayer = [view layer];
[viewLayer setMasksToBounds:YES];
CGRect bounds = [view bounds];
[reader.view.layer setFrame:bounds];
[viewLayer insertSublayer:reader.view.layer below:[[viewLayer sublayers] objectAtIndex:0]];
请尝试使用ZBarReaderView,而不是使用ZBarReaderView控制器。这对我很有效,节省了我很多时间。希望对你有帮助
ZBarReaderView*reader = [ZBarReaderView new];
ZBarImageScanner * scanner = [ZBarImageScanner new];
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];
reader = [reader initWithImageScanner:scanner];
reader.readerDelegate = self;
reader.tracksSymbols = YES;
reader.frame = CGRectMake(20, 38, 283, 347);
reader.torchMode = 0;
dispatch_async(dispatch_get_main_queue(), ^{[reader start];});
[self.view addSubview:reader];
不是那么简单。请参见上面的答案。ZBarReaderViewController是一个ViewController,而不是UIView。因此,不能简单地添加为子视图!你是怎么重设画面的?作为子视图添加似乎提供了一个空白的黑屏。您的代码与上面我的类似吗?如果没有,请尝试并告诉我您是如何操作的。@Dyldo42您可以将代码放在这里吗?我正在开发条形码阅读器应用程序,该应用程序使用zbar Sdk读取条形码并显示其数据。现在,客户希望自定义相机自动聚焦条形码时出现的方括号。如何像这样定制它???谢谢listTableView解决了什么问题?这是您在其他地方实例化的自定义视图吗?overlayView也是iVar吗?您发布的代码无效。你们能回答上面的评论吗?下面的工作对我来说,非常感谢你们这么多,但只有一个问题,条码并没有扫描仪并没有检测到,也并没有调用代理方法。