UIButton标题文本截断

4

我有一个UIButton,设置在XIB中宽147像素,高30像素。它的默认文本为“导航”。在应用程序的过程中,我将标题设置为“全局”。后来,我将它设置为“摘要”,然后显示为“Su...ry”。

我读了很多东西,说要将UIButton的默认标签设置为比最长文本更长,但是“摘要”比“导航”短。文本区域似乎在应用程序中缩小。

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

我一直在使用

button.titlelabel.text = @"Summary";

然而,有时我使用此方法并不能显示文本,因此开始使用以下方式:

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

每次都有效。

有没有一种方法可以强制 UIButton 内的文本区域重置为显示的文本?我不想动态创建按钮,如果这是 Objective-C 的功能,那我会认为这是一个故障。

提前致谢。 Chris H

1个回答

8

这并不是Objective-C的问题。Objective-C是一种编程语言。如果有什么问题,那就是UIKit的问题,它是苹果iOS的UI框架。

问题在于你的按钮无法自适应大小 - 这不是UIButton API的设计方式。在设置标题后,您可以通过调整按钮大小来解决此问题。您可以使用以下代码确定文本需要多大:

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

然后你可以使用这个来增加宽度和高度,并将buttonframe设置为这个大小。


谢谢,抱歉,作为一个相对新手,我无法区分各个组件。感谢您的澄清和解决方案。 - Chris Hardaker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接