Как разместить UILabel в центре навигационной панели

Как разместить UILabel в центре панели навигации в XCode 6? Это вообще возможно? Я могу разместить здесь, например, UIButton, но не смог разместить UILabel. Если нет, что я могу сделать? Поместите a UIButton с соответствующим текстом и сделайте его не кликабельным?

Спасибо заранее.

Ответ 1

В Xcode 6, если вы хотите поместить метку внутри UINavigationBar, сначала нужно поместить UIView, затем поместите UILabel внутри UIView (это из-за Storyboard).

Если вы не поместите UIView сначала, то UILabel никогда не будет помещаться в UINavigationBar.

Ответ 2

Создайте UIView и добавьте UILabel в качестве подпредставления, а затем установите заголовок NavigationItem titleView как ранее созданный UIView.

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 150, 40)];
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 150, 40)];
label.text = @"Hello";
label.textAlignment = NSTextAlignmentCenter;
[view addSubview:label];
self.navigationItem.titleView = view;

Примечание: не забудьте установить собственные значения фрейма, чтобы получить лучший результат.

Ответ 3

Просто попробуйте viewWillLayoutSubviews метод вместо viewDidLoad, и это сработало для меня. Ура!