Χρώμα κειμένου iPhone Navigation Bar Τίτλος

ψήφοι
272

Φαίνεται ότι το χρώμα του τίτλου iOS Navigation Bar είναι λευκό από προεπιλογή. Είναι ένας τρόπος για να το αλλάξετε σε ένα διαφορετικό χρώμα εκεί;

Γνωρίζω την navigationItem.titleViewπροσέγγιση με τη χρήση μιας εικόνας. Από τις ικανότητές του σχεδιασμού μου είναι περιορισμένες και απέτυχε να πάρει το πρότυπο γυαλιστερό, προτιμώ να αλλάζει το χρώμα του κειμένου.

Οποιαδήποτε διορατικότητα θα ήταν πολύ ευπρόσδεκτη.

Δημοσιεύθηκε 01/03/2009 στις 07:51
πηγή χρήστη
Σε άλλες γλώσσες...                            


32 απαντήσεις

ψήφοι
410

Η σύγχρονη προσέγγιση

Ο σύγχρονος τρόπος, για το σύνολο του ελεγκτή πλοήγησης ... να κάνετε αυτό μια φορά, όταν φορτώνεται άποψη ρίζα χειριστήριο πλοήγησης σας.

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

Ωστόσο, αυτό δεν φαίνεται να έχει επίδραση σε μεταγενέστερες απόψεις.

Κλασική προσέγγιση

Το παλιό τρόπο, ανά ελεγκτή άποψη (αυτές οι σταθερές είναι για το iOS 6, αλλά αν θέλετε να το κάνετε ανά ελεγκτή άποψη για iOS 7 εμφάνιση που θα θελήσετε την ίδια προσέγγιση αλλά με διαφορετικές σταθερές):

Θα πρέπει να χρησιμοποιήσετε ένα UILabelη titleViewτου navigationItem.

Η ετικέτα πρέπει:

  • Έχετε μια σαφή χρώμα του φόντου ( label.backgroundColor = [UIColor clearColor]).
  • Χρησιμοποιήστε έντονη γραμματοσειρά 20 pt σύστημα ( label.font = [UIFont boldSystemFontOfSize: 20.0f]).
  • Έχουν μια σκιά του μαύρο με 50% άλφα ( label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]).
  • Θα θέλετε να ορίσετε τη στοίχιση του κειμένου να επικεντρώνεται καθώς και ( label.textAlignment = NSTextAlignmentCenter( UITextAlignmentCenterγια παλαιότερα SDK).

Ρυθμίστε το χρώμα του κειμένου ετικέτας να είναι ό, τι προσαρμοσμένο χρώμα που θέλετε. Μπορείτε να το κάνετε θέλετε ένα χρώμα που δεν προκαλεί το κείμενο να ταιριάζει με τη σκιά, η οποία θα ήταν δύσκολο να διαβάσει.

Δούλεψα αυτό έξω μέσω της δοκιμής και λάθους, αλλά οι τιμές που ήρθε με τα τελικά πάρα πολύ απλό για αυτούς να μην είναι αυτό που πήρε την Apple. :)

Αν θέλετε να επαληθεύσετε αυτό, πτώση αυτόν τον κώδικα σε initWithNibName:bundle:κατά PageThreeViewController.mτου δείγματος NavBar της Apple . Αυτό θα αντικαταστήσει το κείμενο με μια κίτρινη ετικέτα. Αυτό θα πρέπει να διακρίνεται από την αρχική που παράγεται από τον κωδικό της Apple, εκτός από το χρώμα.

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

Επεξεργασία: Επίσης, διαβάστε την απάντηση Erik Β παρακάτω. κωδικό μου δείχνει το αποτέλεσμα, αλλά κώδικα του προσφέρει έναν απλό τρόπο για να μειωθεί αυτό στη θέση του σε μια υπάρχουσα ελεγκτή θέα.

Απαντήθηκε 07/03/2009 στις 03:30
πηγή χρήστη

ψήφοι
226

Ξέρω ότι αυτό είναι ένα πολύ παλιό νήμα, αλλά νομίζω ότι θα ήταν χρήσιμο να γνωρίζουμε για τους νέους χρήστες που iOS 5 φέρνει μια νέα ιδιότητα για την ίδρυση ιδιότητες τίτλο.

Μπορείτε να χρησιμοποιήσετε UINavigationBar του setTitleTextAttributesγια τη ρύθμιση της γραμματοσειράς, το χρώμα, offset, και σκιά χρώμα.

Επιπλέον, μπορείτε να ορίσετε την ίδια προεπιλεγμένη Τίτλος Κείμενο UINavigationBar του Χαρακτηριστικά για το σύνολο των UINavigationBarsσε όλη την αίτησή σας.

Για παράδειγμα, όπως αυτό:

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

[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];
Απαντήθηκε 26/10/2011 στις 23:16
πηγή χρήστη

ψήφοι
180

Στο iOS 5 μπορείτε να αλλάξετε το χρώμα του τίτλου navigationBar με αυτόν τον τρόπο:

navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor yellowColor]};
Απαντήθηκε 26/02/2012 στις 17:31
πηγή χρήστη

ψήφοι
127

Με βάση την απάντηση του Steven Fisher της έγραψα αυτό το κομμάτι του κώδικα:

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

Το πλεονέκτημα αυτού του κώδικα, εκτός από την αντιμετώπιση του πλαισίου σωστά, είναι ότι αν αλλάξετε τον τίτλο του ελεγκτή σας η θέα προσαρμοσμένο τίτλο θα πρέπει επίσης να ενημερωθεί. Δεν χρειάζεται να το ενημερώσετε με μη αυτόματο τρόπο.

Ένα άλλο μεγάλο πλεονέκτημα είναι ότι καθιστά πολύ απλό για να ενεργοποιήσετε το χρώμα προσαρμοσμένο τίτλο. Το μόνο που χρειάζεται να κάνετε είναι να προσθέσετε αυτή τη μέθοδο για τον ελεγκτή.

Απαντήθηκε 05/05/2011 στις 14:52
πηγή χρήστη

ψήφοι
40

Οι περισσότερες από τις παραπάνω προτάσεις έχουν αντικατασταθεί τώρα, για το iOS 7 χρήση -

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

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

Επίσης, την ολοκλήρωση της παραγγελίας του NSAttributedString.h για διάφορες ιδιότητες κείμενο που θα μπορούσε να οριστεί.

Απαντήθηκε 03/10/2013 στις 13:01
πηγή χρήστη

ψήφοι
38

Στο IOS 7 και 8, μπορείτε να αλλάξετε το χρώμα του τίτλου να ας πούμε πράσινο

self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor greenColor] forKey:NSForegroundColorAttributeName];
Απαντήθηκε 19/12/2013 στις 17:14
πηγή χρήστη

ψήφοι
20

Για να διατηρήσετε το ερώτημα up-to-ημερομηνία, εγώ θα προσθέσω Alex RR λύση, αλλά σε Swift :

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

Που έχει ως αποτέλεσμα να:

εισάγετε περιγραφή της εικόνας εδώ

Απαντήθηκε 14/08/2015 στις 13:48
πηγή χρήστη

ψήφοι
13

Μέθοδος 1 , που βρίσκεται σε ΙΒ:

εισάγετε περιγραφή της εικόνας εδώ

Μέθοδος 2 , μία γραμμή κώδικα:

navigationController?.navigationBar.barTintColor = UIColor.blackColor()
Απαντήθηκε 08/04/2016 στις 13:45
πηγή χρήστη

ψήφοι
13

Από το iOS 5 και μετά, θα πρέπει να ρυθμίσετε το χρώμα του κειμένου τίτλο και τη γραμματοσειρά της μπάρας πλοήγησης, χρησιμοποιώντας titleTextAttribute Λεξικό (προκαθορισμένο λεξικό UInavigation ελεγκτή αναφοράς της κατηγορίας).

 [[UINavigationBar appearance] setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIColor blackColor],UITextAttributeTextColor, 
[UIFont fontWithName:@"ArialMT" size:16.0], UITextAttributeFont,nil]];
Απαντήθηκε 11/09/2012 στις 08:21
πηγή χρήστη

ψήφοι
13

Η λύση από tewha λειτουργεί καλά αν προσπαθείτε να αλλάξετε το χρώμα σε μια σελίδα, αλλά θέλω να είναι σε θέση να αλλάξετε το χρώμα σε κάθε σελίδα. Έκανα κάποιες μικρές τροποποιήσεις, έτσι ώστε θα μπορούσε να λειτουργήσει για όλες τις σελίδες σε έναUINavigationController

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
Απαντήθηκε 24/09/2010 στις 03:56
πηγή χρήστη

ψήφοι
10

Swift Έκδοση

Βρήκα τους περισσότερους από εσάς παιδιά παρουσίασε τις απαντήσεις των Objective_C έκδοση

Θα ήθελα να εφαρμόσουν αυτή τη λειτουργία με τη χρήση Swift για όποιον το χρειάζεται.

Σε viewDidLoad

1.To κάνει NavigationBar φόντο γίνεται το χρώμα (για παράδειγμα: BLUE)

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

2.To κάνετε NavigationBar φόντο γίνεται Image (π.χ.: ABC.png)

let barMetrix = UIBarMetrics(rawValue: 0)!

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

αλλαγή 3.To NavigationBar τίτλου (για παράδειγμα: [Font: Futura, 10] [Χρώμα: Κόκκινο])

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

(Hint1: «!» Ας μην ξεχνάμε το σήμα μετά την UIFont)

(Hint2: υπάρχουν πολλά χαρακτηριστικά του κειμένου τίτλο, τη διοίκηση κάντε κλικ στο «NSFontAttributeName» μπορείτε να εισάγετε τις τάξη και θέα keyNames και τα είδη Αντικείμενα που απαιτείται)

Ελπίζω ότι μπορώ να βοηθήσω: D

Απαντήθηκε 09/10/2015 στις 10:05
πηγή χρήστη

ψήφοι
10

Χρησιμοποιήστε τον παρακάτω κώδικα σε οποιαδήποτε viewDidLoad προβολή ελεγκτή ή μέθοδο 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.
}
Απαντήθηκε 19/05/2014 στις 07:43
πηγή χρήστη

ψήφοι
9

Κοντός και γλυκός.

[[[self navigationController] navigationBar] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor redColor]}];
Απαντήθηκε 08/12/2013 στις 03:50
πηγή χρήστη

ψήφοι
8

Αυτή είναι η λύση μου βασίζεται Stevens

Μόνο πραγματική διαφορά είναι Έβαλα κάποια χειρισμό μέσα για να προσαρμόσετε τη θέση, αν, ανάλογα με το μήκος του κειμένου, φαίνεται να είναι παρόμοιο με το πώς το μήλο να το κάνει

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

Μπορεί να θέλετε να ρυθμίσετε το 10 αξία ανάλογα με το μέγεθος της γραμματοσειράς σας

Απαντήθηκε 22/10/2010 στις 15:28
πηγή χρήστη

ψήφοι
6

Αυτό είναι ένα πολύ παλιό νήμα, αλλά νομίζω ότι παρέχει απάντηση για τη ρύθμιση Χρώμα, μέγεθος και θέση Κάθετη του Δικηγορικού πλοήγησης τίτλου για iOS 7 και άνω

Για Χρώμα και Μέγεθος

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

Για Θέση Κάθετη

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

Ορίστε τον τίτλο και να ορίσετε το λεξικό χαρακτηριστικά

[[self navigationItem] setTitle:@"CLUBHOUSE"];
self.navigationController.navigationBar.titleTextAttributes = titleAttributes;
Απαντήθηκε 04/06/2015 στις 15:05
πηγή χρήστη

ψήφοι
6

Είναι συνιστάται να ορίσετε self.title όπως αυτή χρησιμοποιείται ενώ πιέζετε το παιδί navbars ή δείχνει τίτλο για 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];
    }
}
Απαντήθηκε 24/05/2012 στις 19:50
πηγή χρήστη

ψήφοι
6

Έχω προσαρμοστεί εικόνα φόντου του navigationBar και αριστερό στοιχείο κουμπί, και το γκρι τίτλος δεν ταιριάζει με το φόντο. Τότε μπορώ να χρησιμοποιήσω:

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

για να αλλάξετε το χρώμα απόχρωση σε γκρι. Και ο τίτλος είναι λευκή τώρα! Αυτό θέλω.

Ελπίζω να βοηθήσει επίσης :)

Απαντήθηκε 27/05/2011 στις 06:37
πηγή χρήστη

ψήφοι
6

Έτρεξα το πρόβλημα με τα κουμπιά πλοήγησης μου ρίχνουν το κείμενο έξω από το κέντρο (όταν έχετε μόνο ένα κουμπί). Για να διορθώσετε ότι έχω αλλάξει μόνο το μέγεθος του πλαισίου μου σαν αυτό:

CGRect frame = CGRectMake(0, 0, [self.title sizeWithFont:[UIFont boldSystemFontOfSize:20.0]].width, 44);
Απαντήθηκε 21/01/2011 στις 17:07
πηγή χρήστη

ψήφοι
4

Αυτό λειτουργεί για μένα το Swift:

navigationController?.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName:UIColor.white]
Απαντήθηκε 13/04/2017 στις 02:44
πηγή χρήστη

ψήφοι
4

Χρησιμοποιήστε σαν αυτό για την υποστήριξη Προσανατολισμού

    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];
Απαντήθηκε 17/01/2011 στις 06:28
πηγή χρήστη

ψήφοι
3

Η ενημέρωση μετά Alex RR χρησιμοποιώντας το νέο iOS 7 χαρακτηριστικά το κείμενο και τις σύγχρονες αντικειμενικές γ για λιγότερο θόρυβο:

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];
Απαντήθηκε 29/11/2013 στις 23:35
πηγή χρήστη

ψήφοι
3

για να ορίσετε μέγεθος γραμματοσειράς του τίτλου έχω χρησιμοποιήσει ακόλουθες προϋποθέσεις .. ίσως χρήσιμη σε κανέναν

if ([currentTitle length]>24) msize = 10.0f;
    else if ([currentTitle length]>16) msize = 14.0f;
    else if ([currentTitle length]>12) msize = 18.0f;
Απαντήθηκε 15/09/2011 στις 12:18
πηγή χρήστη

ψήφοι
2

Πιστεύω σωστός τρόπος για να ορίσετε το χρώμα της UINavigationBar είναι:

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

Κωδικός παραπάνω είναι γραμμένο είναι υποκατηγορία για UINavigationBar, προφανώς λειτουργεί χωρίς υποκλάσεις, καθώς και.

Απαντήθηκε 09/07/2012 στις 23:04
πηγή χρήστη

ψήφοι
2

Μετά αντιμετωπίζουν το ίδιο πρόβλημα (όπως και άλλοι) της ετικέτας που κινείται όταν εισάγετε ένα κουμπί στο navbar (στη δική μου περίπτωση έχω μια κλωστή που θ αντικαταστήσει με ένα κουμπί, όταν φορτώνεται η ημερομηνία), οι παραπάνω λύσεις δεν λειτούργησε για μένα, τόσο εδώ είναι ό, τι λειτούργησε και διατήρησε την ετικέτα στο ίδιο μέρος όλη την ώρα:

- (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;
Απαντήθηκε 14/04/2011 στις 22:23
πηγή χρήστη

ψήφοι
2

Αυτό είναι ένα από εκείνα τα πράγματα που λείπουν. Ο καλύτερος τρόπος είναι να δημιουργήσετε τη δική σας προσαρμοσμένη Navigation Bar, προσθέστε ένα πλαίσιο κειμένου, και να χειριστείτε το χρώμα με αυτόν τον τρόπο.

Απαντήθηκε 01/03/2009 στις 08:11
πηγή χρήστη

ψήφοι
1
 self.navigationItem.title=@"Extras";
    [self.navigationController.navigationBar setTitleTextAttributes:
     [NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"HelveticaNeue" size:21],
      NSFontAttributeName,[UIColor whiteColor],UITextAttributeTextColor,nil]];
Απαντήθηκε 30/10/2014 στις 05:39
πηγή χρήστη

ψήφοι
1

titleTextAttributes Εμφάνιση χαρακτηριστικά για το κείμενο τον τίτλο του μπαρ.

@property (nonatomic, αντίγραφο) NSDictionary * titleTextAttributes Συζήτηση Μπορείτε να καθορίσετε τη γραμματοσειρά, το χρώμα κειμένου, το χρώμα σκιά κειμένου, και η σκιά κειμένου offset για τον τίτλο στο κείμενο αποδίδει λεξικό, χρησιμοποιώντας τα πλήκτρα χαρακτηριστικό κείμενο περιγράφεται στο NSString UIKit Προσθήκες αναφοράς.

Διαθεσιμότητα Διαθέσιμο σε iOS 5.0 ή νεότερη έκδοση. Κρίθηκε Σε UINavigationBar.h

Απαντήθηκε 07/10/2012 στις 06:51
πηγή χρήστη

ψήφοι
1

Μπορεί να χρησιμοποιήσει αυτή τη μέθοδο σε αρχείο appdelegate και να χρησιμοποιήσετε σε κάθε προβολή

+(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;
}
Απαντήθηκε 20/08/2012 στις 11:47
πηγή χρήστη

ψήφοι
1

Θα πρέπει να καλέσετε [ετικέτα sizeToFit]? μετά τη ρύθμιση του κειμένου για την πρόληψη παράξενο αντισταθμιστικά οφέλη, όταν η ετικέτα αυτόματα επανατοποθετείται στην προβολή τίτλο, όταν άλλα κουμπιά καταλαμβάνουν τη γραμμή πλοήγησης.

Απαντήθηκε 16/03/2011 στις 06:11
πηγή χρήστη

ψήφοι
0

Swift 4 έκδοση:

self.navigationController.navigationBar.titleTextAttributes = [
        NSAttributedStringKey.foregroundColor: UIColor.green]
Απαντήθηκε 23/06/2018 στις 08:41
πηγή χρήστη

ψήφοι
0

Είμαι χρησιμοποιώντας την παρακάτω κώδικα για το iOS 9 και πρόστιμο που εργάζονται για μένα. Έχω επίσης να χρησιμοποιήσετε το χρώμα σκιά για τον τίτλο.

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

Μπορεί αυτό να σας βοηθήσει.

Ευχαριστώ

Απαντήθηκε 12/07/2016 στις 06:40
πηγή χρήστη

ψήφοι
0

Για να γίνει καλή λύση Erik Β περισσότερο ωφέλιμο στις διάφορες UIVIewCOntrollers της εφαρμογής σας συστήνω προσθέτοντας μια κατηγορία για UIViewController και δηλώνουν settitle του: Μέθοδος τίτλο μέσα. Όπως και αυτό θα πάρετε την αλλαγή του χρώματος του τίτλου σε όλους τους ελεγκτές άποψη χωρίς την ανάγκη της επικάλυψης.

Ένα πράγμα που πρέπει να σημειωθεί είναι ότι αν δεν χρειάζεστε [σούπερ settitle: tilte]? στον κώδικα του Erik και ότι θα πρέπει να καλέσετε ρητά self.title = @ «νέο τίτλο μου» σε ελεγκτές άποψή σας για τη μέθοδο αυτή να ονομάζεται

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

@τέλος

Απαντήθηκε 31/12/2012 στις 11:48
πηγή χρήστη

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