Я успешно использовал ZBar в других проектах, но у меня возникли проблемы с его внедрением в мой последний проект. Он настроен как приложение для просмотра с вкладками, где первая вкладка - это сканер, а вторая - результаты. Чтобы обойти проблему использования ZBar в полноэкранном режиме и без отображения панели вкладок, я создал подпредставление (см. Код ниже). Однако, и я тестировал это и на других моих проектах ZBar, когда вы используете subview, ZBar никогда не считывает штрих-код, а затем сохраняет закодированные данные. Вместо этого анимированный индикатор сканирования просто отскакивает.
Есть ли что-то, что я могу добавить в свой код, что позволило бы мне использовать ZBar в подпредставлении? Или это неправильный способ использовать ZBar в приложении с вкладками?
Вот мой метод сканирования:
- (void) presentReader
{
ZBarReaderViewController *reader = [ZBarReaderViewController new];
reader.readerDelegate = self;
reader.supportedOrientationsMask = ZBarOrientationMask(UIInterfaceOrientationPortrait);
reader.showsHelpOnFail = YES;
NSLog(@"reader presented");
ZBarImageScanner *scanner = reader.scanner;
// TODO: (optional) additional reader configuration here
// EXAMPLE: disable rarely used I2/5 to improve performance
[scanner setSymbology: 0
config: ZBAR_CFG_ENABLE
to: 0];
[scanner setSymbology: ZBAR_UPCA
config: ZBAR_CFG_ENABLE
to: 0];
[scanner setSymbology: ZBAR_DATABAR
config: ZBAR_CFG_ENABLE
to: 1];
[scanner setSymbology: ZBAR_DATABAR_EXP
config: ZBAR_CFG_ENABLE
to: 1];
reader.showsCameraControls = NO; // for UIImagePickerController
reader.showsZBarControls = NO;
//reader.cameraFlashMode = UIImagePickerControllerCameraFlashModeAuto;
reader.wantsFullScreenLayout = NO;
reader.videoQuality = UIImagePickerControllerQualityTypeIFrame1280x720;
//Subview
[self.view addSubview:reader.view];
}