2011-02-10 58 views
0

我正在设置一个带有2个按钮的UINavigationBar,它们在按下时会改变它们的标题。我遇到的问题是,如果我使用setTitle:@"IT",然后使用setTile:@"THEM"按钮更改大小。UINavigationBar按钮更改大小?

没问题我想,我会在photoshop中制作两个105x23像素的图像,并在那里添加文本。然而,这不起作用,因为按钮似乎改变了大小,也许按钮大小是基于没有透明像素的。

enter image description here & enter image description here都105x23px

注:灰色的背景是透明的,我疯了它灰色这里显示的每个

// BUTTON CHANGES SIZE 
[self setNavBarItem:[[navBar items] objectAtIndex:0]]; 
[self setButtonStart:[navBarItem leftBarButtonItem]]; 
[self setButtonReset:[navBarItem rightBarButtonItem]]; 

[[self buttonStart] setImage:[UIImage imageNamed:@"IT.png"]]; 
[[self buttonReset] setImage:[UIImage imageNamed:@"THEM.png"]]; 

大小我想出了解决的办法是将按钮标题设置为一个常量文本间隔符,以便每次更改图像时,该按钮保持与按钮标题始终保持相同的大小相同。它工作正常,但我只是想知道是否有其他人遇到过这种情况,也许找到了替代解决方案?

// BUTTON MAINTAINS FIXED SIZE 
[self setNavBarItem:[[navBar items] objectAtIndex:0]]; 
[self setButtonStart:[navBarItem leftBarButtonItem]]; 
[self setButtonReset:[navBarItem rightBarButtonItem]]; 

[[self buttonStart] setTitle:@"_______"]; 
[[self buttonReset] setTitle:@"_______"]; 
[[self buttonStart] setImage:[UIImage imageNamed:@"IT.png"]]; 
[[self buttonReset] setImage:[UIImage imageNamed:@"THEM.png"]]; 

回答

1

设置UIBarButtonItem的possibleTitles属性。它应该正是你想要的。

possibleTitles可能的 标题显示在条形按钮上。

@属性(非原子,副本)的NSSet * possibleTitles

讨论
使用该属性提供一个提示如何正确尺寸 栏按钮项 系统要宽,足以容纳 你最宽的头衔。将此属性的值 设置为NSSet 对象,其中包含您为 打算用作条形图 按钮项目的所有标题。使用您打算显示的实际文字 字符串。

此属性适用于栏按钮 项目放置在导航栏或 工具栏。

+0

哇,现在这很有趣!我不知道这个属性,我肯定会放弃它,非常感谢。 – fuzzygoat

+0

这看起来像在UIBarButton项目添加到UINavigationBar之前它需要发生,你知道如果UINavigationBar和barButton是通过XIB文件创建的,你可能会这样做。目前我已经尝试了这个权利在我的viewDidLoad的顶部,它似乎没有什么区别。 – fuzzygoat