8

外観プロキシを使用してナビゲーション バーの戻るボタンをカスタマイズし、画像とテキストの属性も設定しています。すべて正常に動作しますが、戻るボタンのテキストが中央揃えではありません。

これが私のコードです。

UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] initWithTitle:title style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];
 UIImage *buttonBack32 = [[UIImage imageNamed:@"NavigationBackButton"] 
                         resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 5)];

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack32 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
 [[UIBarButtonItem appearance] setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
        [UIColor whiteColor], 
        UITextAttributeTextColor, 
        [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.8], 
        UITextAttributeTextShadowColor, 
        [NSValue valueWithUIOffset:UIOffsetMake(0, -1)], 
        UITextAttributeTextShadowOffset,
  [UIFont fontWithName:@"xxx" size:16.0], 
  UITextAttributeFont,
  nil] 
                                            forState:UIControlStateNormal]; 
self.navigationItem.backBarButtonItem = backButton;

フォント サイズを「0.0」に設定すると、テキストのサイズが小さすぎて、中央揃えになりません。

助けてくれてありがとう。

4

3 に答える 3

18

setTitlePositionAdjustment:forBarMetrics: メソッドを使用して、必要に応じてタイトル オフセットを設定できます。例えば:

[[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0.0f, 5.0f) forBarMetrics:UIBarMetricsDefault];
于 2012-06-04T10:56:42.833 に答える
-4
You can use this :

UIView* leftContainer = [[UIView alloc] initWithFrame:CGRectMake(0.0, 4.0, 70.0, 44.0)];
UIImage *profileImg = [UIImage imageNamed:@"account-btn.png"];
UIButton *profilebutton = [UIButton buttonWithType:UIButtonTypeCustom];
profilebutton.frame = CGRectMake(0.0, 7.0, 70.0, 30.0 );
[profilebutton setImage:profileImg forState:UIControlStateNormal];
[profilebutton addTarget:self action:@selector(profileBtnClicked) forControlEvents:UIControlEventTouchUpInside];
[leftContainer addSubview:profilebutton];

UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithCustomView:leftContainer];
self.navigationItem.leftBarButtonItem = item;

[leftContainer release];
[item release];
于 2012-06-04T11:07:34.047 に答える