UIButton标题文本截断

时间:2011-12-22 23:36:09

标签: objective-c uibutton

我有一个UIButton,在XIB中设置为147像素宽,30高。它有一个默认文本“导航”。在申请过程中,我将标题设置为“全局”。之后,我将其设置为“摘要”,并显示为“Su ... ry”。

我已经读过很多东西,说UIButton的默认标签要比最长的文本长,但是'Summary'比'Navigation'短。在申请期间,文本区域似乎缩小了。

我没有重新加载视图。我的应用程序主要清除默认显示滚动视图中的元素并重新填充新数据。

我一直在使用

button.titlelabel.text = @"Summary";

然而,当这不会导致文本显示时,我会遇到这种情况,所以开始使用

[button setTitle:@'Summary' forState:UIControlStateNormal];

每次都有效。

是否有某种方法可以强制UIButton中的文本区域重置为正在显示的文本?我宁愿不动态创建按钮,如果这是objective-c的函数,那么我会认为这是一个错误。

提前致谢。 克里斯H

1 个答案:

答案 0 :(得分:8)

这不是Objective-C的错。 Objective-C是一种编程语言。如果出现任何问题,那就是UIKit,这是Apple的iOS UI框架。

问题是你的按钮不会调整大小 - 这不是UIButton的API设计方式。您可以在设置标题后自行调整按钮大小来解决问题。您可以确定文本的大小:

CGSize requiredSize = [[button titleForState:UIControlStateNormal] sizeWithFont:button.titleLabel.font];

然后你可以使用它来使它的宽度和高度更大一些,并将frame设置为button