Zbar cameraOverlay UIBarItem клик не работает

Я следую коду, работающему на iPad, я использую бета-версию Zbar 1.2.2 для поддержки iPad.

ZBarReaderViewController* mReader = [[ZBarReaderViewController alloc] init];
mReader.readerDelegate = self;
mReader.showsZBarControls = NO;
mReader.wantsFullScreenLayout = NO;
mReader.readerView.frame = CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height);
UIButton *imageView = [[UIButton alloc] init];
imageView.frame = CGRectMake(0, 0, UIScreen.mainScreen.bounds.size.width, UIScreen.mainScreen.bounds.size.height);
[self setupToolBar:imageView];
mReader.cameraOverlayView = imageView;

setupToolBar делает следующее

- (void)setupToolBar:(UIButton*)imageView
{
    [imageView retain];
    UIToolbar* imagePickerToolBar = [[UIToolbar alloc] init];

    UIImage *c = [UIImage imageNamed:@"close.png"];
    UIBarButtonItem *closeItem = [[UIBarButtonItem alloc] initWithImage:c style:UIBarButtonItemStylePlain target:self action:@selector(closeBarItemPressed:)];
    NSArray *items = [NSArray arrayWithObjects: closeItem, nil];

    [imagePickerToolBar setItems:items animated:NO];

    imagePickerToolBar.frame = CGRectMake(0, UIScreen.mainScreen.bounds.size.height - imagePickerToolBar.frame.size.height, imagePickerToolBar.frame.size.width, imagePickerToolBar.frame.size.height); 

    [imageView addSubview:imagePickerToolBar];
    [imageView bringSubviewToFront:imagePickerToolBar];

    [imagePickerToolBar release];
    [closeItem release];    
    [imageView release];
}

Теперь мой вопрос: closeBarItemPressed: не звонят, почему и как это исправить?


person deimus    schedule 28.12.2011    source источник
comment
Можете ли вы добавить свой метод closeBarItemPressed:?   -  person Cyprian    schedule 28.12.2011
comment
Я просто NSLog -ing там ничего особенного...   -  person deimus    schedule 28.12.2011


Ответы (2)


У меня тоже была эта пробема. Похоже, что прикосновения игнорируются в нижней части наложения. Попробуйте переместить кнопку немного выше, и это сработает. (в вашем случае, если вы измените рамку панели инструментов, чтобы она находилась в верхней части экрана, я уверен, что ваш метод будет вызван, по крайней мере, это то, что случилось со мной). Хотя не уверен, почему это происходит.

person dariaa    schedule 28.12.2011
comment
На самом деле область экрана, которая обрабатывает касания, равна экрану iPhone, поэтому он не обрабатывает касания ниже этой области... - person deimus; 29.12.2011

По сути, я решил свою проблему, перекомпилировав Zbar с измененными настройками iPad. Теперь работает нормально.

person deimus    schedule 30.12.2011