2013-09-22 19 views
6

Z dox:Jak utworzyć niestandardowy obraz maska ​​dla przycisków wstecz w iOS7

  • Jeśli chcesz użyć niestandardowego obrazu zastąpić domyślny Chevron, trzeba także utworzyć niestandardowy obraz maski . iOS 7 używa maski do , aby tytuł poprzedniego ekranu pojawiał się, wychodząc z - lub znikając do -kwadru podczas przechodzenia przez nawigację. Aby uzyskać informacje na temat właściwości , które kontrolują przycisk Wstecz i obraz maski, zobacz UINavigationBar Reference.

W UINavigationBar Class Reference:

backIndicatorImage

Obraz widoczny obok przycisku Wstecz. @property (nonatomic, zachowują) UIImage * backIndicatorImage Dyskusja

Jeśli chcesz dostosować tylną wskaźnik obrazu, należy również ustawić backIndicatorTransitionMaskImage. Dostępność

Available in iOS 7.0 and later. 

Zobacz także

@property backIndicatorTransitionMaskImage 

zadeklarowane w UINavigationBar.h backIndicatorTransitionMaskImage

obraz używany jako maska ​​dla treści podczas pchania i pop przejściami. @property (nonatomic, zachowują) UIImage * backIndicatorTransitionMaskImage Dyskusja

Jeśli chcesz dostosować tylną wskaźnik obrazu, należy również ustawić backIndicatorImage. Dostępność

Available in iOS 7.0 and later. 

Zobacz także

@property backIndicatorImage 

zadeklarowane w UINavigationBar.h

wybaczyć ignorancję, ale informacje nie powiedzieć dużo.

Czy istnieje klasa kakao, która stworzy maskę z pożądanym obrazem? Czy muszę podać ramkę, łuki i inne? Czy mogę po prostu zrobić czarny obrys mojego obrazu w edytorze?

+3

„Dostosowywanie wyglądu aplikacji dla iOS 7” sesji z WWDC 2013 wyjaśnia znaczenie obu tych parametrów. – macbirdie

Odpowiedz

3

myślę, że to jest to, czego szukasz

self.navigationController.navigationBar.backIndicatorImage = [UIImage yourImage]; 
self.navigationController.navigationBar.backIndicatorTransitionMaskImage = [UIImage yourImage]; 
+0

To nie jest trudne do wymyślenia (dokumentacja wspomina o tym), ale jak mam podać obraz? Czy działa z przezroczystością lub czarno-białymi kolorami itp. Próbowałem już PNG i działa jak biały prostokąt, który obejmuje treść: http://cl.ly/image/0N1V2L181i3t Edytuj: odpowiedź Kowal mówi o rozwiązanie –

+0

Zobacz poniżej, odpowiedz od Kowal. Plik transitionMaskImage, jak pokazano w tym przykładzie, powinien być inny niż obraz wskaźnika, a nie taki sam, w przeciwnym razie tekst zostanie obcięty podczas przejść. – strangetimes

-2

to co zrobiłem i działa idealnie

UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; 
[backButton setBackgroundImage:[UIImage imageNamed:@"backbutton.png"] forState:UIControlStateNormal]; 
UIBarButtonItem *barBackButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 
[backButton addTarget:self action:@selector(popViewController) forControlEvents:UIControlEventTouchUpInside]; 
self.navigationItem.leftBarButtonItem = barBackButtonItem; 
self.navigationItem.hidesBackButton = YES; 

i "popViewController" wygląda to

-(void)popViewController{ 
[self.navigationController popViewControllerAnimated:YES]; 

}

33

backIndicatorTransitionMaskImage jest maską widoczności.

W obrazie maski:

  • pikseli z alpha = 0 będzie obejmujące tytułowy ruchomy podczas przejścia nawigacji;
  • piksele z alpha = 1 będą przezroczyste dla ruchomego tytułu podczas przejść nawigacyjnych.

Więc jeśli chcesz, aby zapewnić takie samo zachowanie widoczności jak w rodzimym wskaźnika tyłu, można korzystać z obrazów (UTF-8 znaków) podobne do tych poniżej:

  1. Powrót wskaźnik image: 〱
  2. Powrót wskaźnik maska: ◀ (tylko tekst pod czarną część będzie widoczny)
+1

To powinna być zaakceptowana odpowiedź. – strangetimes

Powiązane problemy