2013-03-11 5 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ń.