我有很多xib,我通过代码操作导航栏的标题:
titleLabel.text = @"custom Title";
titleLabel.textAlignment = UITextAlignmentCenter;
self.navigationItem.titleView = titleLabel;
我遇到的问题是,在某些情况下,我向该栏添加了一个右键或左键,或两者兼而有之,每当我这样做时,文本对齐最终会有点偏离而不能正确居中。我该如何解决这个问题?
答案 0 :(得分:1)
获取barButton的宽度并从标签的宽度中减去它。
您可以通过以下方法确定条形按钮的框架:
Get the width of a UIBarButtonItem
即
NSInteger barButtonWidth = //determined through method above ^^^^^
titleLabel.frame = CGRectMake(titleLabel.frame.origin.x, titleLabel.frame.origin.y, titleLabel.size.width-barButtonWidth, titleLabel.size.height);
答案 1 :(得分:0)
我找到了解决方法。
通过在设置标题视图之前添加按钮,xcode会自动正确设置对齐。订单很重要。
答案 2 :(得分:0)
这对我有用
UILabel *labelNav;
- (void)viewDidLoad {
[super viewDidLoad];
labelNav=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, 150, 20)];
labelNav.font=[UIFont fontWithName:boldFont size:15];
labelNav.textColor=barTintColor;
labelNav.text=kBoostBusinessHoursScreenTitle;
labelNav.textAlignment=NSTextAlignmentCenter;
labelNav.center=self.navigationController.navigationBar.center;
CGRect framelabel=labelNav.frame;
framelabel.origin.y=12;
labelNav.frame=framelabel;
[self.navigationController.navigationBar addSubview:labelNav];
}
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[labelNav removeFromSuperview];
}