Modern yaklaşım
Navigasyon kontrolörün kök görünümü yüklendiğinde modern bir yoldur, tüm navigasyon kontrolörü için ... bir kere bunu.
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor yellowColor]}];
Ancak, bu daha sonraki görünümlerinde bir etkiye sahip görünmemektedir.
Klasik yaklaşım
görünüm denetleyici başına eski yolu, (bu sabitleri iOS 6 için, ancak iOS 7 görünüşüne görünümü denetleyicisi başına bunu yapmak istiyorsanız ancak farklı sabitler aynı yaklaşımı isteyeceksiniz):
Bir kullanmak zorunda UILabelolduğu titleViewbir navigationItem.
Etiket yapmalıdır:
- Net bir arka plan rengi var (
label.backgroundColor = [UIColor clearColor]).
- Kalın 20pt sistem yazı tipi kullanın (
label.font = [UIFont boldSystemFontOfSize: 20.0f]).
- % 50 alfa ile siyah bir gölge sahip (
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]).
- Siz de merkezli metin hizalamasını ayarlamak isteyeceksiniz (
label.textAlignment = NSTextAlignmentCenter( UITextAlignmentCentereski SDK'lara).
dilediğiniz özel renk olmasını etiket metni rengini ayarlayın. Metin okumak zor olacağını gölge, içine karıştırmak için neden olmaz bir renk istiyorsun.
Ben deneme yanılma yoluyla bu da olur, ama onları Apple bunları yakalar olmamak için değerler ben sonuçta çok basit geldi. :)
Bunu doğrulamak isterseniz, bu kodu damla initWithNibName:bundle:in PageThreeViewController.miçinde Apple'ın NavBar numunesi . Bu sarı etiketle metni değiştirecektir. Bu renk dışında, Apple'ın kodu tarafından üretilen orijinalden ayırt edilemez olmalıdır.
- (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;
}
Düzenleme: Ayrıca, aşağıda Erik B'nin cevabını okuyun. Kodum etkisini gösterir, ancak onun kod varolan görünümü denetleyicisinde yerine bu düşmesi daha basit bir yol sunar.