我使用外观代理自定义导航栏中的后退按钮,还设置图像和文本属性。一切正常,但后退按钮中的文字不是居中对齐的。
这是我的代码。
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"然后文字变得太小,仍然没有居中对齐。
提前感谢您的帮助。
答案 0 :(得分:17)
您可以使用setTitlePositionAdjustment:forBarMetrics:方法根据需要设置标题偏移量。例如:
[[UIBarButtonItem appearance] setTitlePositionAdjustment:UIOffsetMake(0.0f, 5.0f) forBarMetrics:UIBarMetricsDefault];
答案 1 :(得分:0)
要调整文本,我必须使用它:
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -1.5) forBarMetrics:UIBarMetricsDefault];
答案 2 :(得分:-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];