我UIButton
有一个自定义FONT
的titleLabel
属性。
由于某种原因,iOS 6.0
它只显示了一半的标题。我尝试增加标题的高度。但这没有用。
我错过了什么?
这是我唯一的选择吗?
btn.titleLabel.font = [UIFont fontWithName:@"Frutiger95-UltraBlack" size:17];
这就是它的外观(减去颜色变化)
我UIButton
有一个自定义FONT
的titleLabel
属性。
由于某种原因,iOS 6.0
它只显示了一半的标题。我尝试增加标题的高度。但这没有用。
我错过了什么?
这是我唯一的选择吗?
btn.titleLabel.font = [UIFont fontWithName:@"Frutiger95-UltraBlack" size:17];
这就是它的外观(减去颜色变化)
单行标签在纵轴上具有较低的内容压缩阻力优先级。因此,当您增加字体大小时,它们不会增加其内在内容大小的高度。将 compressionResistancePriority 设置为 UILayoutPriorityDefaultHigh 或 UILayoutPriorityRequired 应该可以修复它。
[btn.titleLabel setContentCompressionResistancePriority:UILayoutPriorityRequired
forAxis:UILayoutConstraintAxisVertical];
我认为更新标签就足够了,但您可能还需要增加按钮本身的优先级。
[btn setContentCompressionResistancePriority:UILayoutPriorityRequired
forAxis:UILayoutConstraintAxisVertical];
我认为您需要将按钮标题设置为零,然后制作您自己的自定义 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]