我尝试了两种方法来创建一个 UIButton,它的框架等于它的内在内容大小。
第一种方法成功:
button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTitle:@"Button" forState:UIControlStateNormal];
[[button titleLabel] setFont:[UIFont systemFontOfSize:16.0]];
[button sizeToFit];
[[self view] addSubview:button];
...我记录了 and 的结果,[button frame].size
它们button intrinsicContentSize]
是匹配的。
至于第二种方法,我将 UIButton 拖到 Storyboard 的视图中,然后在按钮上选择 Size To Fit Content。我没有设置任何限制。然后当我使用模拟器运行它时,文本被剪裁:http: //i.imgur.com/96veLtC.png
我记录了这些结果:
// Result: 32.000000
NSLog(@"bottomButton Frame Height: %f", [bottomButton frame].size.height);
// Result: 49.000000
NSLog(@"bottomButton Frame Width: %f", [bottomButton frame].size.width);
// Result: 32.000000
NSLog(@"bottomButton Intrinsic Content Size Height: %f", [bottomButton intrinsicContentSize].height);
// Result: 50.000000
NSLog(@"bottomButton Intrinsic Content Size Width: %f", [bottomButton intrinsicContentSize].width);
...看起来框架的宽度比预期的大 1 像素...有什么想法吗?