2012-03-26 103 views
1

我发现了一个奇怪的行为与UIButton的处理大字体大小时:截断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

它在做同样的直接认为IB,将更多的时候斜体式UIButton上的字体大小超过150像素。 有没有办法解决这个问题,还是SDK错误?

+0

为什么不只是增加文本标签的大小或添加自定义标签作为按钮的子视图? – 2012-03-26 17:26:54

+0

它不起作用。我发现的唯一工作是在最后添加一个空格,但奇怪的是必须这样做 – Diwann 2012-03-26 21:13:37

+0

在这里看到我的答案:http://stackoverflow.com/questions/6624447/uibutton-italic-font-clipping/21419202#21419202 – 2014-01-28 23:37:17

回答

0

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

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

+0

奇怪的是,adjustsFontSizeToFitWidth什么都不做...... – Diwann 2012-03-26 22:23:39

1

您可以尝试设置按钮的标题像下面

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

,或者使用与您的ViewController相关的.xib文件做同样的。 之后,你必须设置按钮的标题的边缘镶石,可以从相应的.xib文件来完成,或者执行以下操作:

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

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

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

+0

一个更简单的方法可能是'setTitle:@“2”':) – 2015-12-30 16:41:50