2013-09-22 9 views
6

Vom dox erstellen:Wie eine benutzerdefinierte Maskenbild für Zurück-Buttons in iOS7

  • Wenn Sie ein eigenes Bild verwenden möchten, die Standard Chevron zu ersetzen, müssen Sie auch eine benutzerdefinierte Maskenbild erstellen . iOS 7 verwendet die Maske zu lassen Sie den vorherigen Bildschirm Titel erscheinen aus oder verschwinden in den Chevron während der Navigation Übergänge. Weitere Informationen zu den Eigenschaften, die die Zurück-Schaltfläche und das Maskenbild steuern, finden Sie unter UINavigationBar-Klassenreferenz.

In UINavigationBar Klasse Referenz:

backIndicatorImage

Das Bild neben der Zurück-Button angezeigt. @property (nonatomic behalten) UIImage * backIndicatorImage Diskussion

Wenn Sie das Back-Anzeige Bild anpassen möchten, müssen Sie setzen auch backIndicatorTransitionMaskImage. Verfügbarkeit

Available in iOS 7.0 and later. 

Siehe

auch
@property backIndicatorTransitionMaskImage 

erklärt In UINavigationBar.h backIndicatorTransitionMaskImage

Das Bild als Maske für die Inhalte während der Push- und Pop-Übergänge verwendet. @property (nonatomic behalten) UIImage * backIndicatorTransitionMaskImage Diskussion

Wenn Sie das Back-Anzeige Bild anpassen möchten, müssen Sie auch backIndicatorImage. Verfügbarkeit

Available in iOS 7.0 and later. 

Siehe

auch
@property backIndicatorImage 

In UINavigationBar.h erklärt

Excuse meine Unwissenheit, aber die Informationen zur Verfügung gestellt hat mir überhaupt nicht viel sagen.

Gibt es eine Cocoa-Klasse, die eine Maske mit dem gewünschten Bild erstellt? Oder muss ich den Rahmen, Bögen und so weiter bereitstellen? Oder mache ich einfach einen schwarzen Umriss meines Bildes in einem Editor?

+3

„Anpassen Ihres App Aussehen für iOS 7“ Sitzung von den WWDC 2013 erklärt die Bedeutung von diesen beiden Parametern. – macbirdie

Antwort

3

Ich denke, das ist das, was Sie suchen

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

Das ist nicht schwer herauszufinden (die Dokumentation erwähnt es) aber wie soll ich das Bild bereitstellen? Es funktioniert mit Transparenz oder schwarz/weiß Farben, etc. Ich habe versucht, ein PNG und es fungiert nur als ein weißes Rechteck, das den Inhalt abdeckt: http://cl.ly/image/0N1V2L181i3t Bearbeiten: Kowals Antwort erwähnt die Lösung –

+0

Siehe unten, Antwort von Kowal. Das transitionMaskImage, wie in diesem Beispiel gezeigt, sollte sich vom Indikatorbild unterscheiden und nicht das selbe, sonst wird der Text während der Übergänge abgeschnitten angezeigt. – strangetimes

-2

das ist, was ich tat und funktioniert perfekt

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; 

und "popViewController" sieht wie folgt aus

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

}

33

Die backIndicatorTransitionMaskImage ist die Sichtbarkeitsmaske.

In dem Maskenbild:

  • die Pixel mit dem alpha = 0 wird die Bewegungs Titel während der Navigation Übergänge abdeckt sein;
  • die Pixel mit der alpha = 1 werden transparent für den bewegten Titel während der Navigationsübergänge sein.

Also, wenn Sie die gleiche Sichtbarkeit Verhalten zur Verfügung stellen möchten, wie in der nativen zurück Indikator, können Sie die Bilder verwenden können (utf-8 Zeichen) ähnlich denen unter:

  1. Zurück Indikatorbild: 〱
  2. Zurück Indikator Maske: ◀ (nur der Text unter dem schwarzen Teil sichtbar sein wird)
+1

Dies sollte die akzeptierte Antwort sein. – strangetimes

Verwandte Themen