我正在使用 Zbar 扫描仪 SDK,它可以让我读取条形码。现在默认版本在读取一个条形码后停止扫描并显示结果。我用自己的完成按钮制作了自己的 UIToolBar,因为我希望它扫描多次,只要用户单击我的 UIToolBar 上的“完成”按钮,所有这些都将终止。我已经制作了按钮,但是如何将操作添加到按钮?由于 pickerController 的参与和 Zbar SDK,这非常令人困惑。如何将叠加层中的 doneButton 链接到终止扫描的操作?
这是我设置完成按钮的叠加层。
-(UIView*)CommomOverlay {
UIToolbar *myToolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 428, 320, 70)];
[myToolBar setBarStyle:UIBarStyleBlackTranslucent];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonTap:)];
[myToolBar setItems:[NSArray arrayWithObjects:doneButton, nil] animated:YES];
[FrameImg addSubview:myToolBar];
[view addSubview:FrameImg];
return view;
这是条码扫描器 SDK 的 IPC 部分。
-(void) imagePickerController: (UIImagePickerController*)
readerdidFinishPickingMediaWithInfo: (NSDictionary*) info {
{
// ADD: get the decode results
id<NSFastEnumeration> results =
[info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
// EXAMPLE: just grab the first barcode
break;
// EXAMPLE: do something useful with the barcode data
resultText.text = symbol.data;
// setup our custom overlay view for the camera
// ensure that our custom view's frame fits within the parent frame
// EXAMPLE: do something useful with the barcode image
resultImage.image =
[info objectForKey: UIImagePickerControllerOriginalImage];
// ADD: dismiss the controller (NB dismiss from the *reader*!)
//Delete below in entirety for continuous scanning.
[reader dismissModalViewControllerAnimated: NO];
}