2013-06-12 3 views
0

Я использую ZBar SDK для чтения QR-кодов на iPhone, однако я добавил кнопку в этом виде. Но кнопка не работает! Даже я нажимаю кнопку, чтобы не перейти к методу действия этой кнопки. Где проблема на самом деле? Заранее спасибо за помощь.ZBar: пользовательская кнопка в режиме просмотра наложения камеры не работает

-(UIView *)setSettingsButton 
{ 

    UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; 
    [view setBackgroundColor:[UIColor clearColor]]; 
    UIToolbar *myToolBar = [[UIToolbar alloc] init]; 

    UIBarButtonItem *button=[[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:self action:@selector(settingsAction)]; 

    [myToolBar setItems:[NSArray arrayWithObjects:button,nil]];  

    settingsLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 37, 281, 77)]; 
    [settingsLabel setFont:[UIFont fontWithName:@"Arial-BoldMT" size:16]]; 
    [settingsLabel setTextAlignment:UITextAlignmentCenter]; 
    [settingsLabel setBackgroundColor:[UIColor clearColor]]; 
    [settingsLabel setTextColor:[UIColor blueColor]]; 
    [settingsLabel setNumberOfLines:1]; 
    [settingsLabel setText:@"For settings scan admin QR"]; 
    [view addSubview:settingsLabel]; 

    settingsLabel.hidden = YES; 

    [myToolBar setBarStyle:UIBarStyleDefault]; 
    CGRect toolBarFrame; 
    toolBarFrame = CGRectMake(0, 436, 320, 44); 
    [myToolBar setFrame:toolBarFrame]; 
    [view addSubview:myToolBar]; 
    return view; 
} 
-(void)settingsAction 
{ 

    settingsLabel.hidden = NO; 

} 

ответ

0

Я не вижу, где проблема, но если это помогает, я настроил просмотр камеры без проблем.

Наиболее вероятным ответом является то, что четкие представления скрывают представление панели инструментов. Вот библиотека для отладки UIViews: https://github.com/domesticcatsoftware/DCIntrospect

+0

BTW: Возможно, вы переименовываете свой метод setSettingsButton как 'set', подразумевает свойство. –

+0

Я изменил метод переименования. Все еще не сработало! – Leo

+0

О, извините, если я не понял. Предложение переименовать ваш метод было просто вопросом стиля кода (только комментарий). Предложение исправить проблему состоит в том, чтобы использовать DCIntrospect для обеспечения того, чтобы представление не было закрыто другим. –

0

У меня была такая же проблема один раз. Это потому, что мой взгляд был слишком большим. Попытайтесь изменить размер представления, например UIView *view=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 380)];, вы увидите, работает ли он.

+0

Не работает! Единственное решение, которое я получил, - это удалить панель инструментов. Спасибо, кстати. – Leo

Смежные вопросы