如何更改ZBar读卡器的框架?

Dyl*_*o42 6 iphone objective-c barcode-scanner ios zbar-sdk

好的,我正在使用ZBar SDK扫描我的iPhone应用程序中的条形码.我已成功实现了示例代码,但现在我想更改扫描仪视图的框架(即:屏幕尺寸的一半).我已尝试在viewDidLoad中设置阅读器视图的框架,但它会自行调整大小.我知道这将是我错过的那些非常简单的事情之一,但任何帮助都会非常感激.干杯.

编辑:我得到了它的工作.这是我的代码:

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];
Run Code Online (Sandbox Code Playgroud)

shr*_*d20 7

而不是使用ZBarReaderViewController,尝试使用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];
Run Code Online (Sandbox Code Playgroud)


Dyl*_*o42 2

我解决了。这就是我必须做的:

  1. 将 ZBarReaderViewController 的视图添加为我自己的视图的子视图(无论其框架是什么,它都会令人烦恼地填充整个视图)。
  2. 将 ZBarReaderViewController 的扫描大小更改为我想要的任何大小(注意:设置此框架与通常设置框架不同,只需询问您是否需要帮助)。
  3. 添加您希望 ZBarReaderViewController 的覆盖视图可见的任何视图。

这是非常困难和不直观的,并且违反了苹果公司的许多代码设计准则,但最终仍然是可行的。

  • @Dyldo42 你能把代码放在这里吗? (4认同)