2013-03-11 16 views
6

enter image description herePrzycisk nawigacyjny po naciśnięciu przycisku zdarzenia po kliknięciu na obszar poniżej.

Mam pasek nawigacji z niestandardowym widokiem jako element paska prawego przycisku. Widok niestandardowy ma dwa przyciski. Ale kiedy dotknę obszaru poniżej paska nawigacyjnego po prawej stronie, wystrzeliwuje wydarzenie dotykowe. Sprawdziłem ramki przycisków i widok zmieniając kolor tła, wszystkie są ustawione idealnie. Sprawdziłem domyślne aplikacje iOS, takie jak zegar, kalendarz, ustawienia, notatki itp. Wszystkie mają takie samo zachowanie. Dotykając w czerwonym prostokącie w ekranu (w domyślnej aplikacji iOS kalendarzowego.) Odpala dotykowy zdarzenie przycisku samo dzieje się z moim app zbyt ..

Oto kod ..

UIView* navigationButtonsView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100.0f, 44.0f)]; 

UIButton *p = [UIButton buttonWithType:UIButtonTypeCustom]; 
[p setImage:[UIImage imageNamed:@"PBtn.png"] forState:UIControlStateNormal]; 
[p addTarget:self action:@selector(PButtonPushed:) forControlEvents:UIControlEventTouchUpInside]; 
[p setFrame:CGRectMake(43, 0, 57, 44)]; 
[navigationButtonsView addSubview:p]; 

UIButton *o = [UIButton buttonWithType:UIButtonTypeCustom]; 
[o addTarget:self action:@selector(oButtonPushed:) forControlEvents:UIControlEventTouchUpInside]; 
[o setFrame:CGRectMake(0, 0, 38, 44)]; 
[o setImage:[UIImage imageNamed:@"O.png"] forState:UIControlStateNormal]; 
[navigationButtonsView addSubview:o]; 

UIBarButtonItem *barItem = [[UIBarButtonItem alloc] initWithCustomView:navigationButtonsView]; 
[musicVC.navigationItem setRightBarButtonItem: barItem animated:NO]; 

Jak zmienić domyślną iOS zachowanie dla przycisków paska nawigacji? Ponieważ m ma jakiś interfejs bezpośrednio pod tymi przyciskami, a jego górny obszar nie odpowiada z tego powodu. góry dzięki ..

Odpowiedz

1

Jest to normalne zachowanie - dwa powody:

  1. iOS nie wie, jak duży palec jest - więc musi zdecydować, gdzie umieścić w dotyku. W tym przypadku pasek nawigacji zastępuje widok tabeli.

  2. Może to mieć coś wspólnego z wytycznymi interfejsu ludzkiego (przepraszam, brak linku, Google to), które mówią, że minimalny dotykany obszar musi mieć rozmiar 44 pikseli. To zachowanie może być "UIBarButtonItem" próbując dostosować się do tych wymagań.

Powiązane problemy