UIButton没有正确调整currentTitle的大小

时间:2014-05-17 22:12:31

标签: ios objective-c uibutton

我正在使用NSLocalizableStringFromTable来设置用户界面的各种组件的文本。当文本比“接口”构建器中的占位符文本长时,我遇到了UIButtons的问题。这是一个比较" save"英语和西班牙语按钮:

Save/Guardar

当我使用NSLog检查_theSaveButton的值时,我得到

_theSaveButton。 titleLabel ="保存"
_theSaveButton。 currentTitle =" Guardar"

我尝试过使用[_theSaveButton sizeToFit],但这似乎总是大小为 titleLabel ,而不是 currentTitle

这是一个快速的代码段:

[_theSaveButton setAttributedTitle:nil forState:UIControlStateNormal];
[_theSaveButton setTitle:NSLocalizedStringFromTable(@"Save", applicationLanguage,nil) forState: UIControlStateNormal];

NSLog(@"%@",_theSaveButton.currentTitle);
NSLog(@"%@",_theSaveButton.titleLabel);

[_theSaveButton sizeToFit];

第一行:我在这里已经包含了setAttributedTitle:nil元素,因为我在其他地方读到这解决了其他问题'问题,但据我所知,这只是娱乐活动。

第二行:setTitle方法似乎正确设置 currentTitle ,并在UI上更改文本,如上所示。

所以,最后,我只想让按钮调整大小以处理本地化的标题。

其他说明:
- 我正在使用AutoLayout。我试过设置宽度约束。目前,我只对后缘和垂直有约束。什么都不应该限制宽度。 - 我尝试在界面构建器中将文本更改为非常长的内容,但这没有任何影响。

2 个答案:

答案 0 :(得分:0)

看起来你有一个固定的宽度约束。请记住,如果仅设置2个约束,则尾随和垂直,将添加缺少的约束。

  

如果构建并运行而不向元素添加任何约束,   你会发现Interface Builder修复了元素的宽度和   高度,并固定其相对于左上角的位置   上海华;这意味着调整窗口大小不会移动或调整大小   要素。使您的界面对更改做出正确的反应   大小或方向,您需要开始添加约束。 - Auto Layout Guide

要修复它,请指定所有常量。基本上你需要一个领先常数,其关系等于或小于等于。然后,应根据内容自动调整宽度。

答案 1 :(得分:0)

嗯,这不是每个案例的答案,但这是最终奏效的:

我去了图书馆/应用程序支持/ iPhone模拟器/ ...的位置,并清除了各种构建的所有产品。然后再次运行应用程序。 Voilá......我甚至不会说法语,但它似乎修复了所有的难题。即使是Clean和Xcode重新启动也无法解决这个问题,但这种清理工作确实很有效。

我猜测当Xcode没有意义时,试试这个[Xcode knockSomeSenseIntoMe:(DoItWithFinder *)cleanEverythingOutByHand];

飞机飞行需要整理出来。也许这也是解决方案的一部分!