Xcode 5 - 适合内容的 UIButton 大小

Posted

技术标签:

【中文标题】Xcode 5 - 适合内容的 UIButton 大小【英文标题】:Xcode 5 - UIButton Size To Fit Content 【发布时间】:2013-09-23 19:32:26 【问题描述】:

我尝试了两种方法来创建一个 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);

...看起来框架的宽度比预期的大 1px...有什么想法吗?

【问题讨论】:

【参考方案1】:

您的屏幕截图说明了一切。

字体大小为 16.0 的内容“Button”太大而无法适应按钮框架的约束,因此将被截断为“B..on”。所以按钮是 49.0 宽,按钮内容或“按钮”比这大。

【讨论】:

以上是关于Xcode 5 - 适合内容的 UIButton 大小的主要内容,如果未能解决你的问题,请参考以下文章

xCode 5:我在 UIButton 选择上得到一个半透明的小方块

针对 iPhone 4s 和 5 上 xcode 5 中的背景图像问题的自定义 UIButton 对齐 - 添加约束不能解决问题

只需要修复 UIButton 和 UILabel 的自动布局问题

UIButton touch在目标c的xcode 4.5中没有响应[关闭]

Swift/XCode 编辑类或 UIButton 的所有实例

如何在 Xcode 4 中正确创建调整为文本长度的 UIButton?