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 に答える