iPhone Navigasyon Bar Başlık metin rengi

oy
272

IOS Gezinme Çubuğu başlık rengi, varsayılan olarak beyazdır görünüyor. Farklı renk olarak değiştirmek için bir yolu var mı?

Ben farkındayım navigationItem.titleViewbir görüntü kullanılarak bir yaklaşım. Benim tasarımım becerileri sınırlıdır ve ben standart parlak alınamadı beri, metin rengini değiştirerek tercih ediyoruz.

Herhangi bir fikir çok takdir edilecektir.

Oluştur 01/03/2009 saat 07:51
kaynak kullanıcı
Diğer dillerde...                            


32 cevaplar

oy
410

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.

Cevap 07/03/2009 saat 03:30
kaynak kullanıcı

oy
226

Ben bu oldukça eski iplik olduğunu biliyorum, ama ben iOS 5 başlık özelliklerini kurulması için yeni bir özellik getiriyor yeni kullanıcılar için bilmek faydalı olacağını düşünüyorum.

Sen UINavigationBar en kullanabilirsiniz setTitleTextAttributesofset yazı tipi, renk, ayarlanması için ve renk gölge.

Buna ek olarak UINavigationBar Başlığını Metin hepsi kullanılan özellikler aynı varsayılan ayarlayabilirsiniz UINavigationBarsuygulamanıza boyunca.

şöyle Örneğin:

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

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];
Cevap 26/10/2011 saat 23:16
kaynak kullanıcı

oy
180

iOS 5'te bu şekilde NavigationBar başlığı rengini değiştirebilirsiniz:

navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor yellowColor]};
Cevap 26/02/2012 saat 17:31
kaynak kullanıcı

oy
127

Steven Fisher cevap dayanarak ben bu kod parçası yazdı:

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

Bu kodun avantajı, düzgün çerçeve ile uğraşan yanında, kendi denetleyici başlığını değiştirirseniz özel başlık görünümü de güncellenecektir olmasıdır. elle güncellemek gerek yok.

Başka bir büyük avantajı da gerçekten basit özel başlık rengini etkinleştirmek için sağlamasıdır. Tek yapmanız gereken tek şey kontrolöre bu yöntemi eklemektir.

Cevap 05/05/2011 saat 14:52
kaynak kullanıcı

oy
40

Yukarıdaki önerilerin çoğu, şimdi artık yok iOS 7 için kullanılması -

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

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

Ayrıca, set edilebilir çeşitli metin özellikleri için NSAttributedString.h ödeme.

Cevap 03/10/2013 saat 13:01
kaynak kullanıcı

oy
38

IOS 7 ve 8, sen yeşil diyelim Title'ın rengini değiştirebilir

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor greenColor] forKey:NSForegroundColorAttributeName];
Cevap 19/12/2013 saat 17:14
kaynak kullanıcı

oy
20

Yukarı güncel soruyu kulak olsun diye ekleyeceğiz Alex RR çözümü, ancak Swift :

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

Hangi için sonuçlar:

Burada görüntü açıklama girin

Cevap 14/08/2015 saat 13:48
kaynak kullanıcı

oy
13

Yöntem 1 , IB ayarlayın:

Burada görüntü açıklama girin

Yöntem 2 , bir kod grubu:

navigationController?.navigationBar.barTintColor = UIColor.blackColor()
Cevap 08/04/2016 saat 13:45
kaynak kullanıcı

oy
13

iOS 5 itibaren biz başlık metin rengi ve titleTextAttribute Sözlüğü (UInavigation denetleyici sınıfı başvurusundaki önceden tanımlanmış sözlük) kullanarak gezinme çubuğunun yazı tipini belirlemek zorunda.

 [[UINavigationBar appearance] setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIColor blackColor],UITextAttributeTextColor, 
[UIFont fontWithName:@"ArialMT" size:16.0], UITextAttributeFont,nil]];
Cevap 11/09/2012 saat 08:21
kaynak kullanıcı

oy
13

Bir sayfada rengini değiştirmek çalışıyorsanız tewha tarafından çözüm iyi çalışıyor, ama her sayfada rengini değiştirmek mümkün olmak istiyorum. Bunun için çalışmak olacağını yüzden bazı küçük değişiklikler yapılmış tüm bir sayfalaraUINavigationController

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
Cevap 24/09/2010 saat 03:56
kaynak kullanıcı

oy
10

Swift Versiyon

Sizlerin en Objective_C versiyonunun cevapları takdim bulundu

Ben buna ihtiyacı herkes için Swift kullanarak bu işlevi uygulamak istiyoruz.

viewDidLoad

1.To hale NavigationBar arka plan rengi (örneğin: MAVİ) olur

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

2.To yapmak NavigationBar arka plan resmi (örneğin: ABC.png) olur

let barMetrix = UIBarMetrics(rawValue: 0)!

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

3.To değişim NavigationBar Başlıktaki (örneğin: [font: Futura, 10] [Renk: Kırmızı])

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

(Hint1: "" UIFont sonra işareti unutmayın)

(Hint2: Başlık metninin niteliklerini çok "NSFontAttributeName" sınıf ve görünümü keynames ve gerekli Nesneler türlerini girebilirsiniz tıklayın orada komutu vardır)

Ben yardımcı olabilir umuyoruz!: D

Cevap 09/10/2015 saat 10:05
kaynak kullanıcı

oy
10

Herhangi bir görünümü denetleyicisi viewDidLoad veya viewWillAppear yöntemde aşağıdaki kodu kullanın.

- (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.
}
Cevap 19/05/2014 saat 07:43
kaynak kullanıcı

oy
9

Kısa ve güzel.

[[[self navigationController] navigationBar] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor redColor]}];
Cevap 08/12/2013 saat 03:50
kaynak kullanıcı

oy
8

Bu Stevens üzerine benim çözüm dayanır

Sadece gerçek fark benim metin uzunluğuna bağlı olarak bunu nasıl elma benzer gibi görünüyor eğer bazı konumunu ayarlamak için işleme koymak olduğunu

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

Sen 10 değer yazı tipi boyutuna bağlı olarak ayarlamak isteyebilirsiniz

Cevap 22/10/2010 saat 15:28
kaynak kullanıcı

oy
6

Bu oldukça eski iplik ancak yukarıda iOS 7 ve için Renk, Navigasyon Bar Başlığı Boyutunu ve Dikey Konumu ayarlamak için cevap sağlayacak düşünüyorum

Renk ve Boyut

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

Dikey Pozisyon İçin

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

Başlık Set ve nitelikleri sözlüğü atama

[[self navigationItem] setTitle:@"CLUBHOUSE"];
self.navigationController.navigationBar.titleTextAttributes = titleAttributes;
Cevap 04/06/2015 saat 15:05
kaynak kullanıcı

oy
6

Çocuk navbars iterek veya tabbars üzerinde başlığını gösterirken bu kullanıldıkça self.title ayarlamak için önerilir.

- (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];
    }
}
Cevap 24/05/2012 saat 19:50
kaynak kullanıcı

oy
6

Ben NavigationBar arka plan görüntüsünü özelleştirilmiş ve düğme öğeyi sol ve gri başlık arka planı uymaz ettik. Sonra kullanın:

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

griye renk tonu rengini değiştirmek için. Ve başlık şimdi beyaz! İstediğim bu.

Ayrıca yardımcı Umut :)

Cevap 27/05/2011 saat 06:37
kaynak kullanıcı

oy
6

Ben (sadece tek bir düğmeye varken) benim nav düğmeleri merkezinin dışına metnini atma sorunla karşılaştık. Sadece şöyle benim kare boyutunu değiştirdi düzeltmek için:

CGRect frame = CGRectMake(0, 0, [self.title sizeWithFont:[UIFont boldSystemFontOfSize:20.0]].width, 44);
Cevap 21/01/2011 saat 17:07
kaynak kullanıcı

oy
4

Bu Swift de benim için çalışıyor:

navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.white]
Cevap 13/04/2017 saat 02:44
kaynak kullanıcı

oy
4

Oryantasyon destek için böyle kullanın

    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];
Cevap 17/01/2011 saat 06:28
kaynak kullanıcı

oy
3

Yeni iOS 7 metin özelliklerini ve daha az gürültü modern objektif c kullanarak Alex RR yayınının için bir güncelleme:

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];
Cevap 29/11/2013 saat 23:35
kaynak kullanıcı

oy
3

yararlı kimseye belki .. ben koşullarını takip kullanmış başlığın yazı tipi boyutunu ayarlamak için

if ([currentTitle length]>24) msize = 10.0f;
    else if ([currentTitle length]>16) msize = 14.0f;
    else if ([currentTitle length]>12) msize = 18.0f;
Cevap 15/09/2011 saat 12:18
kaynak kullanıcı

oy
2

UINavigationBar olduğu I rengini ayarlamak için doğru yolu inanıyorum:

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

Yukarıda yazılı Kod açıkçası, UINavigationBar üzerinde alt sınıfıdır yanı sınıflara olmadan çalışır.

Cevap 09/07/2012 saat 23:04
kaynak kullanıcı

oy
2

Biz (benim durumumda ben tarih yüklenir bir düğme ile değiştirin bir spinner var) Navbar'daki bir düğme eklediğinizde hareket etiketin (diğerleri gibi) aynı sorunla karşılaşmış sonra yukarıdaki çözümler işe yaramadı Benim için, işte çalıştı ve aynı yerde her zaman etiketi tuttu budur:

- (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;
Cevap 14/04/2011 saat 22:23
kaynak kullanıcı

oy
2

Bu eksik şeylerden biridir. Yapabileceğiniz en iyi şey, kendi özel Gezinti Çubuğu oluşturmak bir metin kutusu ekleyin ve renk bu şekilde manipüle etmektir.

Cevap 01/03/2009 saat 08:11
kaynak kullanıcı

oy
1
 self.navigationItem.title=@"Extras";
    [self.navigationController.navigationBar setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"HelveticaNeue" size:21],
      NSFontAttributeName,[UIColor whiteColor],UITextAttributeTextColor,nil]];
Cevap 30/10/2014 saat 05:39
kaynak kullanıcı

oy
1

titleTextAttributes Ekran barın başlık metni için bağlıyor.

@ özelliği (nonatomic, kopya) NSDictionary * titleTextAttributes Tartışma Sen NSString UIKit İlaveler Referans açıklanan metin niteliği tuşlarını kullanarak, sözlük nitelikleri metinde başlık için ofset yazı tipini, metin rengi, metin gölge rengini ve metin gölge belirtebilirsiniz.

iOS 5.0 ve sonraki mevcuttur Kullanılabilirlik. UINavigationBar.h yılında Beyan

Cevap 07/10/2012 saat 06:51
kaynak kullanıcı

oy
1

AppDelegate dosyasında bu yöntemi kullanabilir ve her manzaraya kullanabilirsiniz

+(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;
}
Cevap 20/08/2012 saat 11:47
kaynak kullanıcı

oy
1

Bunu [etiket sizeToFit] çağırmalıdır; diğer düğmeler gez çubuğu işgal olduğunda etiket otomatik başlık görünümünde yeniden konumlandırılmış zaman garip uzaklıklar önlemek için metni ayarladıktan sonra.

Cevap 16/03/2011 saat 06:11
kaynak kullanıcı

oy
0

Swift 4 sürümü:

self.navigationController.navigationBar.titleTextAttributes = [
        NSAttributedStringKey.foregroundColor: UIColor.green]
Cevap 23/06/2018 saat 08:41
kaynak kullanıcı

oy
0

Ben iOS 9 ve benim için onun çalışma cezayı kodunun altına kullanıyorum. Ayrıca başlık için gölge rengi kullanmak var.

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

Bu size yardımcı olabilir.

Teşekkürler

Cevap 12/07/2016 saat 06:40
kaynak kullanıcı

oy
0

başlık yöntemi içeride: UIViewController için bir kategori eklemenizi öneririz uygulamanızın farklı UIViewControllers genelinde Erik B'nin harika bir çözüm daha kullanışlı hale ve onun SetTitle ilan etmek amacıyla. Bunun gibi sen çoğaltılması gerek kalmadan tüm görünüm denetleyicileri üzerinde başlık rengi değişikliğini alacak.

Unutulmaması gereken bir şey [süper SetTitle: tilte] gerek kalmamasıdır; Erik'in kodunda ve sizin çağrılacak açıkça bu yöntem için görünüm denetleyicileri içinde "benim yeni başlık" @ self.title = aramanız gerekmektedir

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

@son

Cevap 31/12/2012 saat 11:48
kaynak kullanıcı

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