iPhone Navigation Bar Titel Textfarbe

stimmen
272

Es scheint, die iOS Navigation Bar Titelfarbe standardmäßig weiß ist. Gibt es eine Möglichkeit, es zu einer anderen Farbe zu ändern?

Ich bin mir der navigationItem.titleViewAnsatz unter Verwendung eines Bildes. Da mein Design - Fähigkeiten begrenzt sind und ich nicht den Standard glänzend zu bekommen, ich ziehe die Änderung der Textfarbe.

Einsicht wäre sehr geschätzt.

Veröffentlicht am 01/03/2009 um 07:51
quelle vom benutzer
In anderen Sprachen...                            


32 antworten

stimmen
410

moderne Ansatz

Die moderne Art und Weise für die gesamten Navigation-Controller ... dies einmal tun, wenn Ihr Navigations Controllers Stammansicht geladen wird.

[self.navigationController.navigationBar setTitleTextAttributes:
   @{NSForegroundColorAttributeName:[UIColor yellowColor]}];

Allerdings scheint dies keine Wirkung in den folgenden Ansichten haben.

klassischer Ansatz

Der alte Weg, per-View-Controller (diese Konstanten sind für iOS 6, aber wenn es auf iOS 7 Aussehen per-View-Controller tun möchten, müssen Sie den gleichen Ansatz wollen, aber mit verschiedenen Konstanten):

Sie müssen verwenden UILabelals die titleViewvon der navigationItem.

Das Etikett sollte:

  • Haben Sie eine klare Hintergrundfarbe ( label.backgroundColor = [UIColor clearColor]).
  • Verwenden Sie fett 20pt Systemschriftart ( label.font = [UIFont boldSystemFontOfSize: 20.0f]).
  • Haben Sie einen Schatten von Schwarz mit 50% alpha ( label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]).
  • Sie werden die Textausrichtung festlegen möchten als auch zentriert ( label.textAlignment = NSTextAlignmentCenter( UITextAlignmentCenterfür ältere SDKs).

Stellen Sie die Etikettentextfarbe zu sein, was auch immer individuelle Farbe, die Sie mögen. Sie haben eine Farbe möchten, die nicht der Text in den Schatten zu verschmelzen verursacht, was schwer zu lesen.

Ich arbeitete dies aus durch Versuch und Irrtum, aber die Werte kam ich mit letztlich zu einfach für sie nicht zu sein, was Apple gepflückt. :)

Wenn Sie dies überprüfen wollen, fallen diesen Code in initWithNibName:bundle:in PageThreeViewController.mder NavBar Probe von Apple . Dadurch wird den Text mit einem gelben Aufkleber ersetzen. Dies sollte aus dem Original produziert von Apples Code, mit Ausnahme der Farbe nicht zu unterscheiden sein.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self)
    {
        // this will appear as the title in the navigation bar
        UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
        label.backgroundColor = [UIColor clearColor];
        label.font = [UIFont boldSystemFontOfSize:20.0];
        label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
        label.textAlignment = NSTextAlignmentCenter;
                           // ^-Use UITextAlignmentCenter for older SDKs.
        label.textColor = [UIColor yellowColor]; // change this color
        self.navigationItem.titleView = label;
        label.text = NSLocalizedString(@"PageThreeTitle", @"");
        [label sizeToFit];
    }

    return self;
}

Edit: Lesen Sie auch Erik B Antwort unten. Mein Code zeigt die Wirkung, aber sein Code bietet einen einfacheren Weg, dies in Platz auf einem vorhandenen View-Controller fallen zu lassen.

Beantwortet am 07/03/2009 um 03:30
quelle vom benutzer

stimmen
226

Ich weiß, dass dies ein ziemlich alter Thread ist, aber ich denke, es wäre nützlich für neue Benutzer zu wissen, dass iOS 5 für den Aufbau Titel Eigenschaften eine neue Eigenschaft bringt.

Sie können UINavigationBar die verwenden setTitleTextAttributesdie Schriftart, Farbe, Offset für die Einstellung und die Farbe Schatten.

Darüber hinaus können Sie den gleichen Standard UINavigationBar Titel der Textattribute für alle die UINavigationBarsgesamte Anwendung.

Zum Beispiel wie folgt:

NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                            [UIColor whiteColor],UITextAttributeTextColor, 
                                            [UIColor blackColor], UITextAttributeTextShadowColor, 
                                            [NSValue valueWithUIOffset:UIOffsetMake(-1, 0)], UITextAttributeTextShadowOffset, nil];

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];
Beantwortet am 26/10/2011 um 23:16
quelle vom benutzer

stimmen
180

In iOS 5 können Sie die navigationbar Titel Farbe auf diese Weise ändern:

navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor yellowColor]};
Beantwortet am 26/02/2012 um 17:31
quelle vom benutzer

stimmen
127

Basierend auf Steven Fisher Antwort schrieb ich dieses Stück Code:

- (void)setTitle:(NSString *)title
{
    [super setTitle:title];
    UILabel *titleView = (UILabel *)self.navigationItem.titleView;
    if (!titleView) {
        titleView = [[UILabel alloc] initWithFrame:CGRectZero];
        titleView.backgroundColor = [UIColor clearColor];
        titleView.font = [UIFont boldSystemFontOfSize:20.0];
        titleView.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];

        titleView.textColor = [UIColor yellowColor]; // Change to desired color

        self.navigationItem.titleView = titleView;
        [titleView release];
    }
    titleView.text = title;
    [titleView sizeToFit];
}

Der Vorteil dieses Code neben richtig mit dem Rahmen zu tun, ist, dass, wenn Sie den Titel Ihres Controller der individuelle Titelansicht wird auch aktualisiert, geändert werden. Keine Notwendigkeit, sie manuell zu aktualisieren.

Ein weiterer großer Vorteil ist, dass es wirklich einfach macht benutzerdefinierten Titel Farbe zu ermöglichen. Alles, was Sie tun müssen, ist diese Methode, um den Controller hinzuzufügen.

Beantwortet am 05/05/2011 um 14:52
quelle vom benutzer

stimmen
40

Die meisten der oben genannten Vorschläge sind jetzt veraltet, für iOS 7 verwenden -

NSDictionary *textAttributes = [NSDictionary dictionaryWithObjectsAndKeys: 
                               [UIColor whiteColor],NSForegroundColorAttributeName, 
                               [UIColor whiteColor],NSBackgroundColorAttributeName,nil];

self.navigationController.navigationBar.titleTextAttributes = textAttributes;
self.title = @"Title of the Page";

Auch Kasse die NSAttributedString.h für verschiedene Texteigenschaften, die festgelegt werden könnten.

Beantwortet am 03/10/2013 um 13:01
quelle vom benutzer

stimmen
38

In IOS 7 und 8 können Sie die Farbe des Titels ändern grünen lassen sagen

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor greenColor] forKey:NSForegroundColorAttributeName];
Beantwortet am 19/12/2013 um 17:14
quelle vom benutzer

stimmen
20

Um die Frage zu halten up-to-date, werde ich hinzufügen Alex RR Lösung, aber in Swift :

self.navigationController.navigationBar.barTintColor = .blueColor()
self.navigationController.navigationBar.tintColor = .whiteColor()
self.navigationController.navigationBar.titleTextAttributes = [
    NSForegroundColorAttributeName : UIColor.whiteColor()
]

Was dazu führt, zu:

Geben Sie hier image description

Beantwortet am 14/08/2015 um 13:48
quelle vom benutzer

stimmen
13

Methode 1 , stellt es in IB:

Geben Sie hier image description

Methode 2 , eine Codezeile:

navigationController?.navigationBar.barTintColor = UIColor.blackColor()
Beantwortet am 08/04/2016 um 13:45
quelle vom benutzer

stimmen
13

Von iOS 5 ab müssen wir Titel Textfarbe und Schriftart von Navigationsleiste mit titleTextAttribute Wörterbuch (vordefinierte Wörterbuch in UInavigation Controller-Klasse Referenz) gesetzt.

 [[UINavigationBar appearance] setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIColor blackColor],UITextAttributeTextColor, 
[UIFont fontWithName:@"ArialMT" size:16.0], UITextAttributeFont,nil]];
Beantwortet am 11/09/2012 um 08:21
quelle vom benutzer

stimmen
13

Die Lösung von tewha funktioniert gut , wenn Sie versuchen , die Farbe auf einer Seite zu ändern, aber ich mag die Farbe der Lage sein , auf jeder Seite zu ändern. Ich habe ein paar kleine Änderungen , so dass es für die Arbeit würde alle Seiten auf einemUINavigationController

NavigationDelegate.h

//This will change the color of the navigation bar
#import <Foundation/Foundation.h>
@interface NavigationDelegate : NSObject<UINavigationControllerDelegate> {
}
@end

NavigationDelegate.m

#import "NavigationDelegate.h"
@implementation NavigationDelegate

- (void)navigationController:(UINavigationController *)navigationController 
      willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{
    CGRect frame = CGRectMake(0, 0, 200, 44);//TODO: Can we get the size of the text?
    UILabel* label = [[[UILabel alloc] initWithFrame:frame] autorelease];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:20.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentCenter;
    label.textColor = [UIColor yellowColor];
    //The two lines below are the only ones that have changed
    label.text=viewController.title;
    viewController.navigationItem.titleView = label;
}
@end
Beantwortet am 24/09/2010 um 03:56
quelle vom benutzer

stimmen
10

Swift Version

Ich fand die meisten von euch Jungs präsentierten die Antworten von Objective_C Version

Ich möchte diese Funktion implementieren, indem Swift für jedermann mit, die es braucht.

in viewDidLoad

1.To machen navigationbar Hintergrund wird Farbe (zum Beispiel: BLUE)

self.navigationController?.navigationBar.barTintColor = UIColor.blueColor()

2.To machen navigationbar Hintergrund wird Bild (zum Beispiel: ABC.png)

let barMetrix = UIBarMetrics(rawValue: 0)!

self.navigationController?.navigationBar
      .setBackgroundImage(UIImage(named: "ABC"), forBarMetrics: barMetrix)

3.To Änderung navigationbar Titel (zum Beispiel: [Schriftart: Futura, 10] [Farbe: rot])

navigationController?.navigationBar.titleTextAttributes = [
            NSForegroundColorAttributeName : UIColor.redColor(),
            NSFontAttributeName : UIFont(name: "Futura", size: 10)!
        ]

(Hint1: „!“ Nicht zu vergessen die Marke nach dem UIFont)

(Hint2: es gibt viele Attribute des Titeltextes, Kommando auf die Schaltfläche „NSFontAttributeName“ können Sie die Klasse und Ansicht Keynames eingeben und die Objekte Typen sie erforderlich)

Ich hoffe, dass ich helfen kann: D

Beantwortet am 09/10/2015 um 10:05
quelle vom benutzer

stimmen
10

Verwenden Sie den Code in jeder Ansicht Controller viewDidLoad oder viewWillAppear Methode.

- (void)viewDidLoad
{
    [super viewDidLoad];

    //I am using UIColor yellowColor for an example but you can use whatever color you like   
    self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor yellowColor]};

    //change the title here to whatever you like
    self.title = @"Home";
    // Do any additional setup after loading the view.
}
Beantwortet am 19/05/2014 um 07:43
quelle vom benutzer

stimmen
9

Kurz und bündig.

[[[self navigationController] navigationBar] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor redColor]}];
Beantwortet am 08/12/2013 um 03:50
quelle vom benutzer

stimmen
8

Dies ist meine Lösung basiert auf Stevens

Nur wirkliche Unterschied ist, ich passen Sie die Position einige Handhabung in setzen, wenn je nach Textlänge, um ähnlich zu sein scheint, wie Apple es tun

UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(([self.title length] < 10 ? UITextAlignmentCenter : UITextAlignmentLeft), 0, 480,44)];
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.font = [UIFont boldSystemFontOfSize: 20.0f];
titleLabel.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
titleLabel.textAlignment = ([self.title length] < 10 ? UITextAlignmentCenter : UITextAlignmentLeft);
titleLabel.textColor = [UIColor redColor];
titleLabel.text = self.title;
self.navigationItem.titleView = titleLabel;
[titleLabel release];

Sie können die 10-Wert je nach Schriftgröße anpassen möchten

Beantwortet am 22/10/2010 um 15:28
quelle vom benutzer

stimmen
6

Das ist ein ziemlich alter Thread aber ich denke Antwort der Bereitstellung für die Einstellung Farbe, Größe und vertikale Position der Navigationsleiste Titels für iOS 7 und höher

Für Farbe und Größe

 NSDictionary *titleAttributes =@{
                                NSFontAttributeName :[UIFont fontWithName:@"Helvetica-Bold" size:14.0],
                                NSForegroundColorAttributeName : [UIColor whiteColor]
                                };

Für vertikale Position

[[UINavigationBar appearance] setTitleVerticalPositionAdjustment:-10.0 forBarMetrics:UIBarMetricsDefault];

Set Titel und ordnen Sie die Attribute Wörterbuch

[[self navigationItem] setTitle:@"CLUBHOUSE"];
self.navigationController.navigationBar.titleTextAttributes = titleAttributes;
Beantwortet am 04/06/2015 um 15:05
quelle vom benutzer

stimmen
6

Es wird empfohlen, self.title zu setzen, wie dies verwendet wird, während Kind NavBars Schub- oder Titel auf tabbars zeigt.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // create and customize title view
        self.title = NSLocalizedString(@"My Custom Title", @"");
        UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectZero];
        titleLabel.text = self.title;
        titleLabel.font = [UIFont boldSystemFontOfSize:16];
        titleLabel.backgroundColor = [UIColor clearColor];
        titleLabel.textColor = [UIColor whiteColor];
        [titleLabel sizeToFit];
        self.navigationItem.titleView = titleLabel;
        [titleLabel release];
    }
}
Beantwortet am 24/05/2012 um 19:50
quelle vom benutzer

stimmen
6

Ich habe das Hintergrundbild des navigationbar angepasst und Schaltfläche Artikel links, und der graue Titel den Hintergrund nicht passen. Dann benutze ich:

[self.navigationBar setTintColor:[UIColor darkGrayColor]];

mit dem den Farbton in Grau geändert. Und der Titel ist jetzt weiß! Das ist, was ich will.

Ich hoffe, auch zu helfen :)

Beantwortet am 27/05/2011 um 06:37
quelle vom benutzer

stimmen
6

Ich lief in das Problem mit meiner nav Taste, um den Text aus der Mitte zu werfen (wenn Sie nur eine Taste haben). Um dies zu beheben, dass ich wie so nur die Größe meines Rahmen geändert:

CGRect frame = CGRectMake(0, 0, [self.title sizeWithFont:[UIFont boldSystemFontOfSize:20.0]].width, 44);
Beantwortet am 21/01/2011 um 17:07
quelle vom benutzer

stimmen
4

Dies funktioniert für mich in Swift:

navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.white]
Beantwortet am 13/04/2017 um 02:44
quelle vom benutzer

stimmen
4

Verwenden Sie, wie dies für Orientierung Unterstützung

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,40)];
 [view setBackgroundColor:[UIColor clearColor]];
 [view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight ];

 UILabel *nameLabel = [[UILabel alloc] init];
 [nameLabel setFrame:CGRectMake(0, 0, 320, 40)];
 [nameLabel setBackgroundColor:[UIColor clearColor]];
 [nameLabel setAutoresizingMask:UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin |UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin];
 [nameLabel setTextColor:[UIColor whiteColor]];
 [nameLabel setFont:[UIFont boldSystemFontOfSize:17]];
  [nameLabel setText:titleString];
 [nameLabel setTextAlignment:UITextAlignmentCenter];
 [view addSubview:nameLabel];
 [nameLabel release];
 self.navigationItem.titleView = view;
 [view release];
Beantwortet am 17/01/2011 um 06:28
quelle vom benutzer

stimmen
3

Ein Update auf Alex RR Post die neuen iOS 7 Textattribute und modernen Objective-C für weniger Lärm mit:

NSShadow *titleShadow = [[NSShadow alloc] init];
titleShadow.shadowColor = [UIColor blackColor];
titleShadow.shadowOffset = CGSizeMake(-1, 0);
NSDictionary *navbarTitleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor],
                                            NSShadowAttributeName:titleShadow};

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];
Beantwortet am 29/11/2013 um 23:35
quelle vom benutzer

stimmen
3

Schriftgröße des Titels gesetzt ich habe folgende Bedingungen verwendet .. vielleicht zu hilfsbereit jemand

if ([currentTitle length]>24) msize = 10.0f;
    else if ([currentTitle length]>16) msize = 14.0f;
    else if ([currentTitle length]>12) msize = 18.0f;
Beantwortet am 15/09/2011 um 12:18
quelle vom benutzer

stimmen
2

Ich glaube, die richtige Weg, um die Farbe zu setzen von UINavigationBar ist:

NSDictionary *attributes=[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor],UITextAttributeTextColor, nil];
self.titleTextAttributes = attributes;

Code oben geschrieben wird, ist Unterklasse auf UINavigationBar arbeitet offensichtlich ohne auch Subklassen.

Beantwortet am 09/07/2012 um 23:04
quelle vom benutzer

stimmen
2

Nach dem gleichen Problem zu begegnen (wie andere) des Etiketts, das sich bewegt, wenn wir auf eine Schaltfläche in der Navigationsleiste einfügen (in meinem Fall habe ich ein Spinner, die ich mit einem Knopf zu ersetzen, wenn das Datum geladen wird), arbeiten die oben genannten Lösungen nicht so hier für mich ist, was funktioniert hat und hielt das Etikett an der gleichen Stelle die ganze Zeit:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
    // this will appear as the title in the navigation bar
    //CGRect frame = CGRectMake(0, 0, [self.title sizeWithFont:[UIFont boldSystemFontOfSize:20.0]].width, 44);
   CGRect frame = CGRectMake(0, 0, 180, 44);
    UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease];



    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:20.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentCenter;
    label.textColor = [UIColor yellowColor];
    self.navigationItem.titleView = label;
    label.text = NSLocalizedString(@"Latest Questions", @"");
    [label sizeToFit];
}

return self;
Beantwortet am 14/04/2011 um 22:23
quelle vom benutzer

stimmen
2

Dies ist eines jener Dinge, die fehlen. Ihre beste Wette ist deine eigene individuell gestaltete Navigationsleiste, fügen Sie ein Textfeld erstellen und bearbeiten die Farbe, die Art und Weise.

Beantwortet am 01/03/2009 um 08:11
quelle vom benutzer

stimmen
1
 self.navigationItem.title=@"Extras";
    [self.navigationController.navigationBar setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"HelveticaNeue" size:21],
      NSFontAttributeName,[UIColor whiteColor],UITextAttributeTextColor,nil]];
Beantwortet am 30/10/2014 um 05:39
quelle vom benutzer

stimmen
1

titleTextAttributes Anzeigeattribute für den Titeltext der Bar.

@property (nonatomic, Kopie) NSDictionary * titleTextAttributes Diskussion können Sie die Schriftart, Textfarbe, Textschattenfarbe und Textschatten für den Titel im Text Offset-Attribute Wörterbuch, die Textattribut Schlüssel in NSString UIKit Zugänge Referenz beschrieben ist.

Vorhanden in iOS 5.0 und höher. Erklärt In UINavigationBar.h

Beantwortet am 07/10/2012 um 06:51
quelle vom benutzer

stimmen
1

Diese Methode kann in AppDelegate-Datei verwenden und bei jeder Ansicht verwenden kann,

+(UILabel *) navigationTitleLable:(NSString *)title
{
CGRect frame = CGRectMake(0, 0, 165, 44);
UILabel *label = [[[UILabel alloc] initWithFrame:frame] autorelease];
label.backgroundColor = [UIColor clearColor];
label.font = NAVIGATION_TITLE_LABLE_SIZE;
label.shadowColor = [UIColor whiteColor];
label.numberOfLines = 2;
label.lineBreakMode = UILineBreakModeTailTruncation;    
label.textAlignment = UITextAlignmentCenter;
[label setShadowOffset:CGSizeMake(0,1)]; 
label.textColor = [UIColor colorWithRed:51/255.0 green:51/255.0 blue:51/255.0 alpha:1.0];

//label.text = NSLocalizedString(title, @"");

return label;
}
Beantwortet am 20/08/2012 um 11:47
quelle vom benutzer

stimmen
1

Sie sollten rufen [label sizeToFit]; Nachdem der Text Einstellung seltsame Offsets zu verhindern, wenn das Etikett automatisch in der Titelansicht neu positioniert wird, wenn andere Tasten, um die Navigationsleiste zu besetzen.

Beantwortet am 16/03/2011 um 06:11
quelle vom benutzer

stimmen
0

Swift-4-Version:

self.navigationController.navigationBar.titleTextAttributes = [
        NSAttributedStringKey.foregroundColor: UIColor.green]
Beantwortet am 23/06/2018 um 08:41
quelle vom benutzer

stimmen
0

Ich verwende unter Code für die iOS 9 und seine Arbeit für mich in Ordnung. Ich habe auch Schattenfarbe für den Titel.

self.navigationItem.title = @"MY NAV TITLE";
self.navigationController.navigationBar.barTintColor = [UIColor redColor];
self.navigationController.navigationBar.translucent = NO;
NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8];
shadow.shadowOffset = CGSizeMake(0, 1);
[self.navigationController.navigationBar setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                                       [UIColor colorWithRed:245.0/255.0 green:245.0/255.0 blue:245.0/255.0 alpha:1.0], NSForegroundColorAttributeName,
                                                       shadow, NSShadowAttributeName,
                                                       [UIFont fontWithName:@"HelveticaNeue-Light" size:21.0], NSFontAttributeName, nil]];

Möchten diese Ihnen helfen.

Vielen Dank

Beantwortet am 12/07/2016 um 06:40
quelle vom benutzer

stimmen
0

Um Erik B die große Lösung verwendbareren über die verschiedenen UIViewControllers Ihrer App empfehle ich das Hinzufügen einer Kategorie für UIViewController und erklären seine setTitle zu machen: Titel Verfahren nach innen. Wie dies werden Sie die Titelfarbwechsel auf allen View-Controller, ohne die Notwendigkeit von Doppelarbeit bekommen.

Eine Sache, obwohl zu beachten ist, dass Sie nicht brauchen [super setTitle: tilte]; in Erik Code und Sie müssen explizit self.title = nennen @ „mein neuen Titel“ in der Ansicht-Controller für diese Methode aufgerufen werden

@implementation UIViewController (CustomeTitleColor)

- (void)setTitle:(NSString *)title
{
    UILabel *titleView = (UILabel *)self.navigationItem.titleView;
    if (!titleView) {
        titleView = [[UILabel alloc] initWithFrame:CGRectZero];
        titleView.backgroundColor = [UIColor clearColor];
        titleView.font = [UIFont boldSystemFontOfSize:20.0];
        titleView.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];

        titleView.textColor = [UIColor blueColor]; // Change to desired color

        self.navigationItem.titleView = titleView;
        [titleView release];
    }
    titleView.text = title;
    [titleView sizeToFit];
}

@Ende

Beantwortet am 31/12/2012 um 11:48
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more