2012-12-18 38 views
0

中心對準我有許多其中I操縱導航欄的標題通過代碼xibs的:導航欄,標題,通過代碼

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

我的問題是,在某些情況下,我添加到該禁止右鍵或左鍵,或者兩者兼而有之,並且每當我這樣做時,文本對齊最終會有點偏離,並且不會以中心爲中心。我該如何解決這個問題?

+0

看到我的答案在這裏:http://stackoverflow.com/a/33365965/4768700 – kalpeshdeo

回答

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); 
+0

這是沒有這樣做,標籤仍然脫落中心。 – Kalamantina

+0

我沒有更深入地研究過它,謹慎分享你的發現? – Sarreph

0

我有種找到了一個解決辦法吧。

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

+0

在此處查看我的答案:http://stackoverflow.com/a/33365965/4768700 – kalpeshdeo

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