0

UIButton有一个自定义FONTtitleLabel属性。

由于某种原因,iOS 6.0它只显示了一半的标题。我尝试增加标题的高度。但这没有用。

我错过了什么?

这是唯一的选择吗?

btn.titleLabel.font = [UIFont fontWithName:@"Frutiger95-UltraBlack" size:17];

在此处输入图像描述

这就是它的外观(减去颜色变化)

在此处输入图像描述

4

2 回答 2

0

单行标签在纵轴上具有较低的内容压缩阻力优先级。因此,当您增加字体大小时,它们不会增加其内在内容大小的高度。将 compressionResistancePriority 设置为 UILayoutPriorityDefaultHigh 或 UILayoutPriorityRequired 应该可以修复它。

[btn.titleLabel setContentCompressionResistancePriority:UILayoutPriorityRequired
                                                forAxis:UILayoutConstraintAxisVertical];

我认为更新标签就足够了,但您可能还需要增加按钮本身的优先级。

[btn setContentCompressionResistancePriority:UILayoutPriorityRequired
                                      forAxis:UILayoutConstraintAxisVertical];
于 2013-10-13T16:31:48.693 回答
0

我认为您需要将按钮标题设置为零,然后制作您自己的自定义 UILabel 并将该标签添加到您的按钮上,如下面的示例所示 -

UILabel *lblloginbtntitle=[[UILabel alloc]initWithFrame:CGRectMake(0, 0, btnLogin.frame.size.width, btnLogin.frame.size.height)];
lblloginbtntitle.text=NSLocalizedString(@"Login", nil);
lblloginbtntitle.textAlignment=NSTextAlignmentCenter;
lblloginbtntitle.textColor=[UIColor whiteColor];
lblloginbtntitle.font=[UIFont fontWithName:@"AvenirNextLTPro-Regular" size:20];
[btnLogin addSubview:lblloginbtntitle]; 
[btnLogin setTitle:@"" forState:UIControlStateNormal]
于 2015-09-15T18:00:42.213 回答