Xcode 5 - UIButton尺寸适合内容

时间:2013-09-23 19:32:27

标签: ios xcode ios7

我尝试了两种方法来创建一个UIButton,其框架等于其内在内容大小。

第一种方法是成功的:

button = [UIButton buttonWithType:UIButtonTypeSystem];
[button setTitle:@"Button" forState:UIControlStateNormal];
[[button titleLabel] setFont:[UIFont systemFontOfSize:16.0]];
[button sizeToFit];
[[self view] addSubview:button];

...我记录了[button frame].sizebutton 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倍...任何想法?

1 个答案:

答案 0 :(得分:0)

你的截图说明了一切。

具有16.0字体大小的内容“按钮”太大而无法适应按钮框架的约束,因此它被截断为“B..on”。因此Button的宽度为49.0,按钮内容或“按钮”大于此值。