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