I just wondered if it is possible to globally change the UINavigationBar's title textAlignment like you can do with its font:

NSMutableDictionary *titleBarAttributes     = [NSMutableDictionary dictionaryWithDictionary: [[UINavigationBar appearance] titleTextAttributes]];
[titleBarAttributes setValue:[UIFont fontWithName:myFontName] forKey:NSFontAttributeName];
[[UINavigationBar appearance] setTitleTextAttributes:titleBarAttributes];

Does something like [titleBarAttributes setValue:NSTextAlignmentLeft forKey:NSTextAlignment] exist for UIAppereance?

有帮助吗?

解决方案

I am afraid the answer is no. You can only have the following keys for the text attributes from the NSString UIKit Additions Reference:

NSString *const UITextAttributeFont; 
NSString *const UITextAttributeTextColor; 
NSString *const UITextAttributeTextShadowColor; 
NSString *const UITextAttributeTextShadowOffset;

But you can still set the titleView property of the UINavigationItem with UILabel and you can set the text alignment there.

You can create a base subclass of view controller, set the navigation item titleView property, and create subsequent view controllers by subclassing that base view controller.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top