如何正确地创build一个调整到Xcode 4中的文本长度的UIButton?
在Xcode 4中,您应该能够devise基于其内容来resize的UI界面。 不过,看起来这是一些关于如何获得这个缺失的片断。
我有一个在XIB文件中configuration的button来调整右侧的大小,并且有足够的空间来做到这一点。
问题是当标签更新时,它没有缝合来调整button的大小。
这可以通过添加一个[button sizeToFit];
标签更改后。
仍然我正在寻找一个解决scheme,而不需要在代码中添加这个手动步骤。
我提到有足够的空间来进一步扩展button,仍然sizeToFit
接缝来放大button,但仍然不足以适应整个文本。
我错过了什么?
在XCode 4.5及以上版本中,现在可以通过使用“ 自动布局/约束 ”来完成。
主要优点是:
- 你不需要编程设置框架!
- 如果操作正确,则不需要为重置方向更改而重新设置框架。
- 此外,设备更改不需要打扰您(阅读,不需要为不同的屏幕尺寸单独编码)。
一些缺点:
- 不向后兼容 – 仅适用于iOS 6及以上版本。
- 需要熟悉(但会在以后节省时间)。
最酷的事情是我们集中于声明一个意图,如:
- 我想要这两个button是相同的宽度; 要么
- 我需要把这个观点垂直居中,并从监督的边缘延伸到10分的最大范围。 甚至,
- 我想要这个button/标签根据它显示的标签来resize!
这是一个简单的教程来介绍自动布局: http ://www.raywenderlich.com/20881/beginning-auto-layout-part-1-of-2
有关更详细的信息,请访问: http : //www.techotopia.com/index.php/An_Introduction_to_Auto_Layout_in_iOS_6
起初需要一些时间,但是看起来确实是值得的。
干杯!
[button sizeToFit]
对我不起作用,但是我发现了一种单独使用IB的方法(xcode 4.5):
- 点击
UIButton
- 在“大小”检查器中,将
content hugging
拖到1(水平和垂直) - 将
compression resistance
拖到999(对于两者) - 在UIButton的
constraints
点击Width
,将priority
改为250 - 为高度做同样的事情
- 你可以使用
UIButton
的inset
来控制左/右/上/下的填充
你需要在设置标题后调用sizeToFit
来resize以适应给定的标题。
您可以通过sizeToFit
UIButton
来移除手动步骤,覆盖setTitle:forControlState:
方法并在那里实现对sizeToFit
的调用。 不要忘记调用超级实现,否则你的标题不会被设置,坏事会发生。