iPhone Navigation Bar Tytuł kolor tekstu

głosy
272

Wydaje się, że iOS Pasek nawigacyjny tytuł kolor jest biały domyślnie. Czy istnieje sposób, aby zmienić go na inny kolor?

Jestem świadomy tego navigationItem.titleViewpodejścia z wykorzystaniem obrazu. Ponieważ moje umiejętności projektowania są ograniczone i nie udało mi się dostać średnia błyszczący, wolę zmianę koloru tekstu.

Każdy wgląd byłby znacznie doceniane.

Utwórz 01/03/2009 o 07:51
źródło użytkownik
W innych językach...                            


32 odpowiedzi

głosy
410

nowoczesne podejście

Nowoczesny sposób dla całego kontrolera nawigacji ... to zrobić raz, kiedy widok główny kontroler nawigacyjnego jest załadowany.

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

Jednak nie wydaje się mieć wpływ w kolejnych widoków.

klasyczne podejście

Stary sposób, na widoku kontrolera (te są stałe dla iOS 6, ale jeśli chcesz to zrobić za widok kontrolera na iOS 7 wyglądu będziemy chcieli to samo podejście, ale z różnych stałych):

Trzeba użyć UILabeljako titleViewz navigationItem.

Etykieta powinna:

  • Mieć jasny kolor tła ( label.backgroundColor = [UIColor clearColor]).
  • Użyj pogrubioną czcionką 20pt systemu ( label.font = [UIFont boldSystemFontOfSize: 20.0f]).
  • Mają cień czerni 50% alfa ( label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]).
  • Będziemy chcieli, aby ustawić wyrównanie tekstu do skoncentrowany, jak również ( label.textAlignment = NSTextAlignmentCenter( UITextAlignmentCenterdla starszych SDK).

Ustaw kolor tekstu etykieta być cokolwiek zwyczaj kolor chcesz. Ty chcesz kolor, który nie powoduje tekst do wtapiają się cieniem, który byłby trudny do odczytania.

Pracowałem na to uwagę metodą prób i błędów, ale wartości wymyśliłem są ostatecznie zbyt proste dla nich nie będzie co wziął jabłko. :)

Jeśli chcesz, aby to sprawdzić, spadek ten kod do initWithNibName:bundle:IN PageThreeViewController.mz próbki NavBar Apple'a . Spowoduje to zastąpienie tekstu z żółtej etykiecie. Powinno to być nie do odróżnienia od oryginału produkowanego przez kod Apple, z wyjątkiem koloru.

- (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;
}

Edycja: Również odczytać odpowiedź Erik B poniżej. Mój kod pokazuje wpływ, ale jego kod oferuje prostszy sposób na wyrzucenie tego w miejscu na istniejącym kontrolerze widoku.

Odpowiedział 07/03/2009 o 03:30
źródło użytkownik

głosy
226

Wiem, że to dość stary wątek, ale myślę, że warto byłoby wiedzieć, że dla nowych użytkowników iOS 5 wprowadza nową usługę dla ustalenia właściwości tytułowe.

Można użyć UINavigationBar użytkownika setTitleTextAttributesdo ustawiania czcionki, kolor, offset, cień i kolor.

Dodatkowo można ustawić taką samą domyślną UINavigationBar Dziecięcy Nazwa atrybuty tekstu dla wszystkich UINavigationBarsw całej aplikacji.

Na przykład tak:

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

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];
Odpowiedział 26/10/2011 o 23:16
źródło użytkownik

głosy
180

W iOS 5 można zmienić kolor tytułu navigationBar w ten sposób:

navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor yellowColor]};
Odpowiedział 26/02/2012 o 17:31
źródło użytkownik

głosy
127

Na podstawie odpowiedzi Steven Fishera Napisałem ten kawałek kodu:

- (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];
}

Zaletą tego kodu, oprócz czynienia z ramką prawidłowo, jest to, że jeśli zmienisz tytuł kontrolera zwyczaj tytuł widok będzie również uzyskać zaktualizowane. Nie trzeba go aktualizować ręcznie.

Kolejną wielką zaletą jest to, że czyni to naprawdę proste, aby umożliwić zwyczaj tytułowy kolor. Wszystko, co musisz zrobić, to dodać tę metodę do sterownika.

Odpowiedział 05/05/2011 o 14:52
źródło użytkownik

głosy
40

Większość z powyższych sugestii są przestarzałe teraz na iOS 7 Zastosowanie -

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

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

Również wyewidencjonowania NSAttributedString.h różnych właściwościach tekstowych, które mogą być ustawione.

Odpowiedział 03/10/2013 o 13:01
źródło użytkownik

głosy
38

W iOS 7 i 8, można zmienić kolor tytuł do powiedzmy zielony

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor greenColor] forKey:NSForegroundColorAttributeName];
Odpowiedział 19/12/2013 o 17:14
źródło użytkownik

głosy
20

Aby utrzymać pytanie up-to-date, dodam Alex RR rozwiązanie, ale w Swift :

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

Co prowadzi do:

wprowadzić opis obrazu tutaj

Odpowiedział 14/08/2015 o 13:48
źródło użytkownik

głosy
13

Metoda 1 , ustaw go w IB:

wprowadzić opis obrazu tutaj

Metoda 2 , jedna linia kodu:

navigationController?.navigationBar.barTintColor = UIColor.blackColor()
Odpowiedział 08/04/2016 o 13:45
źródło użytkownik

głosy
13

Z iOS 5 roku musimy ustawić tytuł kolor tekstu i czcionki paska nawigacji przy użyciu titleTextAttribute słowniku (predefiniowane słownika w klasie kontrolera UInavigation odniesienia).

 [[UINavigationBar appearance] setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIColor blackColor],UITextAttributeTextColor, 
[UIFont fontWithName:@"ArialMT" size:16.0], UITextAttributeFont,nil]];
Odpowiedział 11/09/2012 o 08:21
źródło użytkownik

głosy
13

Rozwiązanie przez tewha działa dobrze, jeśli starają się zmienić kolor na stronie, ale chcę, aby być w stanie zmienić kolor na każdej stronie. Zrobiłem kilka małych modyfikacji tak, że będzie pracować dla wszystkich stron naUINavigationController

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
Odpowiedział 24/09/2010 o 03:56
źródło użytkownik

głosy
10

Swift Version

Znalazłem większość z was przedstawił odpowiedzi na wersji Objective_C

Chciałbym wdrożyć tę funkcję za pomocą Swift dla każdego, kto jej potrzebuje.

w viewDidLoad

1.To zrobić NavigationBar tło staje się kolor (na przykład: niebieski)

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

2.To zrobić NavigationBar tło staje obrazu (na przykład: ABC.png)

let barMetrix = UIBarMetrics(rawValue: 0)!

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

Zmiana 3.To NavigationBar tytułowy (na przykład: [Czcionka: Futura 10] [Kolor czerwony])

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

(Hint1: „” nie zapomnij znaku po UIFont)

(Hint2: istnieje wiele atrybutów tekstu tytułowego Command kliknij „NSFontAttributeName” można wprowadzić klasy i wyświetlać nazwy kluczy i typów Przedmioty są wymagane)

Mam nadzieję, że mogę pomóc: D

Odpowiedział 09/10/2015 o 10:05
źródło użytkownik

głosy
10

Użyj poniższego kodu w dowolnym viewDidLoad widok kontrolera lub metody viewWillAppear.

- (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.
}
Odpowiedział 19/05/2014 o 07:43
źródło użytkownik

głosy
9

Krótkie i słodkie.

[[[self navigationController] navigationBar] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor redColor]}];
Odpowiedział 08/12/2013 o 03:50
źródło użytkownik

głosy
8

To jest moje rozwiązanie oparte na Stevens

Jedyną różnicą jest umieścić niektóre obchodzenia się dla wyregulowania położenia jeśli w zależności od długości tekstu, wydaje się być podobny do tego, jak to zrobić jabłko

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];

Możesz ustawić wartość 10 w zależności od rozmiaru czcionki

Odpowiedział 22/10/2010 o 15:28
źródło użytkownik

głosy
6

Jest to dość stary wątek, ale myślę o dostarczenie odpowiedzi na ustawienie kolor, rozmiar i położenie pionowe nawigacji pasek tytułowy dla iOS 7 i nowszych

Dla koloru i rozmiaru

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

Do pozycji pionowej

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

Ustaw tytuł i przypisać atrybuty słownika

[[self navigationItem] setTitle:@"CLUBHOUSE"];
self.navigationController.navigationBar.titleTextAttributes = titleAttributes;
Odpowiedział 04/06/2015 o 15:05
źródło użytkownik

głosy
6

Zaleca się, aby ustawić self.title jak ten używany jest podczas pchania NavBars dziecko lub pokazując tytuł na tabbars.

- (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];
    }
}
Odpowiedział 24/05/2012 o 19:50
źródło użytkownik

głosy
6

Ja dostosował navigationBar za obraz tła i lewy element przycisku, a szary tytuł nie pasuje do tła. Następnie używam:

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

aby zmienić kolor na szary odcień. A tytuł jest biały! To jest to czego chce.

Nadzieję, że pomoże też :)

Odpowiedział 27/05/2011 o 06:37
źródło użytkownik

głosy
6

Pobiegłem w błąd moje przyciski nav rzuca tekst poza centrum (jeśli masz tylko jeden przycisk). Aby ustalić, że po prostu zmieniłem rozmiar ramki tak jak poniżej:

CGRect frame = CGRectMake(0, 0, [self.title sizeWithFont:[UIFont boldSystemFontOfSize:20.0]].width, 44);
Odpowiedział 21/01/2011 o 17:07
źródło użytkownik

głosy
4

To działa na mnie w Swift:

navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.white]
Odpowiedział 13/04/2017 o 02:44
źródło użytkownik

głosy
4

Użyj takiego wsparcia Orientacja

    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];
Odpowiedział 17/01/2011 o 06:28
źródło użytkownik

głosy
3

Aktualizacja postu Alex RR Korzystanie nowym iOS 7 atrybutów tekstowych i nowoczesne konkretna C przez mniej hałasu:

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];
Odpowiedział 29/11/2013 o 23:35
źródło użytkownik

głosy
3

aby ustawić rozmiar czcionki tytułu Użyłem następujących warunkach .. może pomocny każdemu

if ([currentTitle length]>24) msize = 10.0f;
    else if ([currentTitle length]>16) msize = 14.0f;
    else if ([currentTitle length]>12) msize = 18.0f;
Odpowiedział 15/09/2011 o 12:18
źródło użytkownik

głosy
2

Wierzę właściwy sposób ustawić kolor UINavigationBar jest:

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

Kod powyżej opisana jest podklasą na UINavigationBar, oczywiście działa bez instacji również.

Odpowiedział 09/07/2012 o 23:04
źródło użytkownik

głosy
2

Po napotkaniu ten sam problem (jak inni) etykiety, która porusza, kiedy wstawić przycisk na pasku nawigacyjnym (w moim przypadku mam spinner że zamieniam w przycisk, gdy data jest ładowany), powyższe rozwiązania nie działają dla mnie, więc tutaj jest to, co pracowali i przechowywane etykietę w tym samym miejscu przez cały czas:

- (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;
Odpowiedział 14/04/2011 o 22:23
źródło użytkownik

głosy
2

Jest to jedna z tych rzeczy, których brakuje. Najprościej jest stworzyć swój własny pasek nawigacji, dodać pole tekstowe i manipulować kolorem tamtędy.

Odpowiedział 01/03/2009 o 08:11
źródło użytkownik

głosy
1
 self.navigationItem.title=@"Extras";
    [self.navigationController.navigationBar setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"HelveticaNeue" size:21],
      NSFontAttributeName,[UIColor whiteColor],UITextAttributeTextColor,nil]];
Odpowiedział 30/10/2014 o 05:39
źródło użytkownik

głosy
1

titleTextAttributes wyświetlanych atrybutów dla tytułowego tekstu baru.

@property (nonatomic, kopia) NSDictionary * titleTextAttributes Dyskusja Można określić czcionkę, kolor tekstu, cień, kolor tekstu i cień tekstu przesunięcia o tytuł w tekście słownika atrybutów, za pomocą przycisków atrybutów tekstu opisane w NSString UIKit Zwiększenia Reference.

Dostępność Dostępny w iOS 5.0 i nowszym. Zadeklarowane w UINavigationBar.h

Odpowiedział 07/10/2012 o 06:51
źródło użytkownik

głosy
1

Można użyć tej metody w pliku appdelegate i można używać w każdym widoku

+(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;
}
Odpowiedział 20/08/2012 o 11:47
źródło użytkownik

głosy
1

Należy zadzwonić [etykieta sizeToFit]; po ustawieniu tekst, aby zapobiec dziwnych przesunięć, gdy etykieta jest automatycznie przeniesiony w widoku tytułowej gdy inne przyciski zajmują pasku nawigacyjnym.

Odpowiedział 16/03/2011 o 06:11
źródło użytkownik

głosy
0

Swift 4 wersja:

self.navigationController.navigationBar.titleTextAttributes = [
        NSAttributedStringKey.foregroundColor: UIColor.green]
Odpowiedział 23/06/2018 o 08:41
źródło użytkownik

głosy
0

Używam poniżej kod dla iOS 9 i grzywny pracy dla mnie. I również użyć kolor cieni do tytułu.

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]];

Może to pomóc.

Dzięki

Odpowiedział 12/07/2016 o 06:40
źródło użytkownik

głosy
0

W celu dokonania doskonałym rozwiązaniem Erik B jest bardziej użyteczny na różnych UIVIewCOntrollers Twojej aplikacji zalecam dodanie kategorię UIViewController i zgłosić swój setTitle: metodę tytułem środka. Tak dostaniesz tytuł zmiany koloru na wszystkich kontrolerach widok bez konieczności powielania.

Należy pamiętać jednak, że nie trzeba [Super setTItle: tilte]; w kodzie Erika i że trzeba będzie jawnie wywołać self.title = @ „moim nowym tytułem” w widoku kontrolerów dla tej metody na miano

@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];
}

@koniec

Odpowiedział 31/12/2012 o 11:48
źródło użytkownik

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