Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 右对齐self.navigationItem setTitleView_Iphone_Ios_Xcode - Fatal编程技术网

Iphone 右对齐self.navigationItem setTitleView

Iphone 右对齐self.navigationItem setTitleView,iphone,ios,xcode,Iphone,Ios,Xcode,我需要将navigationItem标题视图与最右侧对齐。(导航项RightBarButtonim通常出现的位置) 如何做到这一点 我已经试过了,但没有成功,它仍然将TitleView放在中心位置: CGRect titleViewPos = CGRectMake(300, 0, 200, 10); self.navigationItem.titleView.frame = titleViewPos; 您将得到如下输出: 您将得到如下输出: 只是一个想法: UIButton *btn =

我需要将navigationItem标题视图与最右侧对齐。(导航项RightBarButtonim通常出现的位置)

如何做到这一点

我已经试过了,但没有成功,它仍然将TitleView放在中心位置:

CGRect titleViewPos = CGRectMake(300, 0, 200, 10);
self.navigationItem.titleView.frame = titleViewPos;
您将得到如下输出:

您将得到如下输出:

只是一个想法:

 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 btn.frame = CGRectMake(300, 0, 200, 10);
 [btn setTitle:@"titleView" forState:UIControlStateNormal];
 self.navigationItem.titleView = btn;
只是一个想法:

 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 btn.frame = CGRectMake(300, 0, 200, 10);
 [btn setTitle:@"titleView" forState:UIControlStateNormal];
 self.navigationItem.titleView = btn;

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

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

试试这一个,可能已经用完了

 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;

试试这个,可能已经用完了

 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;

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


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

标题视图框架会自动调整,如果要获得此结果,可以尝试以下方法:

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


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

这些都不适合我。我接受了Desdanova的建议,只是添加了一个子视图。有道理,因为这就是全部!使用所需的任何帧位置初始化它,然后

[self.view addSubView:lbl];

这些对我都不管用。我接受了Desdanova的建议,只是添加了一个子视图。有道理,因为这就是全部!使用所需的任何帧位置初始化它,然后

[self.view addSubView:lbl];

然后添加为子视图。然后添加为子视图。