deimus
deimus

Reputation: 9893

Zbar cameraOverlay UIBarItem click does not work

I've following code running on iPad, I'm usin Zbar 1.2.2 beta version for support in 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 does following

- (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];
}

Now my question : closeBarItemPressed: is not getting called, why and how to fix it ?

Upvotes: 0

Views: 636

Answers (2)

deimus
deimus

Reputation: 9893

Basically I solved my problem, by recompiling Zbar, with modified iPad settings. Now it works OK.

Upvotes: 0

dariaa
dariaa

Reputation: 6385

I had this problem too. It looks like touches are ignored in the bottom part of the overlay view. Try moving the button a little bit higher and it will work. (in your case if you change toolbar frame to be in the top of the screen, I bet your method will be called, at least this is what happened to me). Not sure why this is happening though.

Upvotes: 1

Related Questions