0

我想backButton在我的navigationController. 我只想要使用的图像,根本没有显示“后退”文本,所以我做了:

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,即使它实际上只是在后退按钮文本应该存在的地方留下空白:

在此处输入图像描述

有没有办法可以让标题更靠左一点?

4

1 回答 1

0

您可以使用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];

希望它可以帮助你。

于 2013-05-28T17:02:49.880 回答