Change position of navigationItem.title

2019-04-28 20:33发布

问题:

In my ViewDidLoad I try something like that but its not working:


UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10,2,60,14)];
label.autoresizingMask = UIViewAutoresisingFlecibleWidth;
[self.navigationController.navigationBar addSubview:label];


I want to display a label in the left part of my NavigationBar. Or maybe change the navigationBar.title position

Thanks,

回答1:

You can do set navigation item's title view to UILabel with left text alignment:

UILabel* lbNavTitle = [[UILabel alloc] initWithFrame:CGRectMake(0,40,320,40)];
lbNavTitle.textAlignment = UITextAlignmentLeft;
lbNavTitle.text = NSLocalizedString(@"Hello World!",@"");
self.navigationItem.titleView = lbNavTitle;
[lbNavTitle release];

Created this way item's title also tolerates buttons on navigation bar and does not overlap them.