2

我需要将 navigationItem TitleView 对齐到最右边。(navigationItem rightBarButtonItem 通常出现的地方)

如何才能做到这一点 ?

我已经尝试过了,但没有运气,它仍然将 TitleView 放在中心:

CGRect titleViewPos = CGRectMake(300, 0, 200, 10);
self.navigationItem.titleView.frame = titleViewPos;
4

6 回答 6

4
UILabel *lbl = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 44)];
lbl.textAlignment = UITextAlignmentRight;
lbl.backgroundColor = [UIColor clearColor];
lbl.text = @"TITLEVIEW";
self.navigationItem.titleView = lbl;

你会得到输出为

在此处输入图像描述

于 2013-04-30T09:52:45.597 回答
0

只是一个想法:

 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 btn.frame = CGRectMake(300, 0, 200, 10);
 [btn setTitle:@"titleView" forState:UIControlStateNormal];
 self.navigationItem.titleView = btn;
于 2013-04-30T09:53:58.397 回答
0

这些都不适合我。我接受了 Desdanova 的建议,只是添加了一个子视图。有道理,因为仅此而已!用你想要的任何帧位置初始化它,然后

[self.view addSubView:lbl];

瞧!

于 2013-10-18T00:44:15.217 回答
0

titleview框架是自动调整的,如果你想得到这个结果你可以试试这个:

UILabel *titleLabel = [[UILabel alloc] initWithFrame:self.navigationController.navigationBar.frame];
[titleLabel setTextAlignment:UITextAlignmentRight];
[titleLabel setText:@"Your title"];
[titleLabel setBackgroundColor:[UIColor clearColor]];
[titleLabel setTextColor:[UIColor whiteColor]];
self.navigationItem.titleView = titleLabel;

注意:一定不要设置视图控制器的 self.title 否则你会覆盖 titleView

另一种解决方案可以将 titleLabel 放入 UIBarButtonItem (customView) 并将其设置为 self.navigationItem.rightBarButtonItem 这样您就不需要设置文本对齐广告标签的框架可以是正确的文本大小

于 2013-04-30T10:15:28.720 回答
0

试试这个,可能有用

 UILabel *lbNavTitle = [[UILabel alloc] initWithFrame:CGRectMake(0,40,320,40)];
lbNavTitle.textAlignment = NSTextAlignmentRight;
lbNavTitle.backgroundColor = [UIColor clearColor];
lbNavTitle.text = @"hello World";
self.navigationItem.titleView = lbNavTitle;
于 2013-04-30T10:10:41.790 回答
0

您需要将 UIElement (UIView,UILabel) 传递给导航项,然后您可以设置位置并使用导航标题或左键或右键进行其他自定义。愿这对你有所帮助。

于 2013-04-30T09:58:57.813 回答