Riz*_*zon 6 objective-c uibutton uikit ios
我无法理解为什么在下面的代码中,标题对齐不是顶部.
UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn2.titleLabel.font = [UIFont systemFontOfSize:53];
btn2.frame = CGRectMake(20, 20, 270, 44);
[btn2 setTitle:@"test1 test2 test3 test4 test5 test6 test7" forState:UIControlStateNormal];
[btn2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
btn2.titleLabel.minimumFontSize = 1.0;
btn2.titleLabel.adjustsFontSizeToFitWidth = YES;
btn2.titleLabel.numberOfLines = 1;
btn2.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;
Run Code Online (Sandbox Code Playgroud)

UIButton有一个非常漂亮的名为" titleEdgeInsets"的属性,您可以使用它(通过UIEdgeInsetsMake重新定位标题的顶部和底部边距并使事物垂直居中.
此行为是由于baselineAdjustment按钮的默认属性造成的titleLabel。如果您将其设置为UIBaselineAdjustmentNone,您应该会获得您想要的效果。
btn2.titleLabel.baselineAdjustment = UIBaselineAdjustmentNone;
从文档中UILabel:
基线调整
控制当文本需要缩小以适合标签时如何调整文本基线。
Run Code Online (Sandbox Code Playgroud)@property(nonatomic) UIBaselineAdjustment baselineAdjustment讨论
如果该
adjustsFontSizeToFitWidth属性设置为YES,则该属性控制在需要调整字体大小的情况下文本基线的行为。该属性的默认值为UIBaselineAdjustmentAlignBaselines。仅当该属性numberOfLines设置为时该属性才有效1。
和
UIBaselineAdjustment对齐基线
相对于其基线位置调整文本。
适用于 iOS 2.0 及更高版本。
UI基线调整对齐中心
相对于其边界框的中心调整文本。
适用于 iOS 2.0 及更高版本。
UI基线调整无
相对于边界框的左上角调整文本。这是默认调整。
适用于 iOS 2.0 及更高版本。
请注意, 的默认调整UILabel与按钮 的默认调整不同titleLabel。
| 归档时间: |
|
| 查看次数: |
7243 次 |
| 最近记录: |