我在处理大字体大小的UIButton时发现了一个奇怪的行为:
我的iPad应用程序需要呈现那种UIButton,我发现当我在那些大字体大小的UIButton上应用斜体属性时,文本看起来像下面那样被截断:
这很奇怪,因为我的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);
给了我:
当在斜体样式的UIButton上应用超过150 px的字体大小时,它在IB中直接进行相同的思考。 有没有办法解决它或它是一个SDK错误?按钮宽度:710.3,文本宽度:518.0
按钮宽度:710.3,文本宽度:518.0
答案 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]
。这肯定会减小字体大小(如果它对于给定的帧大小来说太大),但会确保字符中的任何内容都不会被删除。