Modern yaklaşım
Tüm gezinti denetleyicisi için modern yol… gezinti denetleyicinizin kök görünümü yüklendiğinde bunu bir kez yapın.
[self.navigationController.navigationBar setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor yellowColor]}];
Ancak, bunun sonraki görünümlerde bir etkisi yoktur.
Klasik yaklaşım
Eski yol, görünüm denetleyicisi başına (bu sabitler iOS 6 içindir, ancak iOS 7 görünümünde görünüm denetleyicisi başına yapmak istiyorsanız aynı yaklaşımı ancak farklı sabitlerle isteyeceksiniz):
Bir kullanmak zorunda UILabel
olduğu titleView
bir navigationItem
.
Etiket:
- Net bir arka plan rengine sahip (
label.backgroundColor = [UIColor clearColor]
).
- Kalın 20pt sistem yazı tipi (
label.font = [UIFont boldSystemFontOfSize: 20.0f]
) kullanın .
- % 50 alfa (
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]
) ile siyah bir gölgeye sahip olun .
- Metin hizalamasını da ortalanmış olarak ayarlamak istersiniz (
label.textAlignment = NSTextAlignmentCenter
( UITextAlignmentCenter
eski SDK'lar için).
Etiket metni rengini istediğiniz özel renk olarak ayarlayın. Metnin gölgeye karışmasına neden olmayan, okunması zor olan bir renk istiyorsunuz.
Bunu deneme yanılma yoluyla hallettim, ama ortaya koyduğum değerler sonuçta Apple'ın seçtiği şey değil. :)
Bunu doğrulamak isterseniz, bu kodu damla initWithNibName:bundle:
içinde PageThreeViewController.m
bir en Apple NavBar numunesi . Bu, metni sarı bir etiketle değiştirir. Bu, renk haricinde Apple'ın koduyla ü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ğıdaki Erik B'nin cevabını okuyun. Kodum etkiyi gösteriyor, ancak kodu bunu mevcut bir görünüm denetleyicisine bırakmak için daha basit bir yol sunuyor.