簡體   English   中英

導航欄,標題,通過代碼居中對齊

[英]navigationbar, title, center alignment through code

我有許多xib,可通過代碼在其中操縱導航欄的標題:

titleLabel.text = @"custom Title";
titleLabel.textAlignment = UITextAlignmentCenter;
self.navigationItem.titleView = titleLabel;

我遇到的問題是,在某些情況下,我會在該欄中添加一個左右按鈕,或同時添加這兩個按鈕,並且每當這樣做時,文本對齊方式都會偏離一點並且無法正確居中。 我該如何解決?

獲取barButton的寬度,並將其從標簽的寬度中減去。

您可以通過以下方法確定條形按鈕的框架:

獲取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); 

我有點找到了解決方法。

通過在設置標題視圖之前添加按鈕,xcode會自動正確設置對齊方式。 順序很重要。

這對我有用

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];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM