在UIButton中截断斜体文字?

时间:2012-03-26 17:02:25

标签: ios ipad

我在处理大字体大小的UIButton时发现了一个奇怪的行为:

我的iPad应用程序需要呈现那种UIButton,我发现当我在那些大字体大小的UIButton上应用斜体属性时,文本看起来像下面那样被截断: screenshot

这很奇怪,因为我的UIButton正确居中且足够大。 sizeToFit没有帮助。 我试图让日志知道更多,看起来按钮的UILabel的内部尺寸太小了:

NSLog(@"Button width : %.1f, text width : %.1f", button.frame.size.width, button.titleLabel.frame.size.width);
[button.titleLabel sizeToFit];
NSLog(@"Button width : %.1f, text width : %.1f", button.frame.size.width, button.titleLabel.frame.size.width);

给了我:

  

按钮宽度:710.3,文本宽度:518.0

     

按钮宽度:710.3,文本宽度:518.0

当在斜体样式的UIButton上应用超过150 px的字体大小时,它在IB中直接进行相同的思考。 有没有办法解决它或它是一个SDK错误?

2 个答案:

答案 0 :(得分:1)

您可以尝试设置按钮的标题,如下所示

[button setTitle:@"2 " forState:UIControlStateNormal/Highlighted/Selected];

或使用与ViewController关联的.xib文件执行相同操作。 之后,您必须设置按钮标题的边缘插入,可以从相应的.xib文件中完成,或执行以下操作:

[button setTitleEdgeInsets:UIEdgeInsetsMake(0,spacingFromLeft, 0, 0)];

第二步将确保文本(在本例中为字符串“2”)保持与中心对齐。因此,在UIEdgeInsetsMake()方法的leftSpacing参数中,您可以根据需要设置宽度,使其与中心对齐。

我也有同样的问题并采用了这个解决方案,这可能不是最好或最正确的方法,但它确实对我有用。

答案 1 :(得分:0)

我认为它是大字体大小(相对于按钮/标签大小)的组合。当你添加一个空格时,它实际上增加了UILabel的大小。

试试[button.titleLabel adjustsFontSizeToFitWidth]。这肯定会减小字体大小(如果它对于给定的帧大小来说太大),但会确保字符中的任何内容都不会被删除。