簡體   English   中英

沒有背面文字的UIBarButtonItem backButton設置圖像會導致標題對齊問題

[英]UIBarButtonItem backButton setting image with no back text causes title alignment issues

我想在我的navigationControllerbackButton使用圖像。 我只想使用圖像,根本不顯示任何“后退”文本,所以我這樣做了:

UIImage *backButtonImage = [[UIImage imageNamed:@"ZSSBackButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 25, 0, 0)];
[[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButtonImage forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, backButtonImage.size.height*2) forBarMetrics:UIBarMetricsDefault];

這很好用,但似乎對較長的navigationItem標題似乎不在中心有副作用,即使實際上只是在空白處保留了backbutton文本應為:

在此處輸入圖片說明

有沒有辦法我可以將標題再左一點?

您可以使用titleView屬性管理UINavigationbar標題的位置。

UIView *backView =[[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 40)];// Here you can set View width and height as per your requirement for displaying titleLbl position in navigationbar 
[backView setBackgroundColor:[UIColor clearColor]];
UILabel *titleLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 40)];
[backView addSubview:titleLbl];
titleLbl.text  = @"YOUR TITLE";
titleLbl.textAlignment = NSTextAlignmentCenter;
self.navigationItem.titleView = backView;

編輯:您可以創建自定義按鈕,並將其分配給leftbutton:

UIButton *btnBack = [UIButton buttonWithType:UIButtonTypeCustom];
btnBack.frame = CGRectMake(0,0,51,31);
[btnBack setBackgroundImage:[UIImage imageNamed:@"ZSSBackButton"] forState:UIControlStateNormal];
[btnBack addTarget:self action:@selector(btnBackProfile_TouchUpInside:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *leftBtn = [[UIBarButtonItem alloc] initWithCustomView:btnBack];
[self.navigationItem setLeftBarButtonItem:leftBtn];

希望對您有幫助。

暫無
暫無

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

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