在Xcode 4中,您应该能够设计根据内容调整大小的UI界面。仍然看起来有关如何获得这个的一些缺失部分。
我有一个在XIB文件中配置的按钮,可以向右调整大小,并且它有足够的空间来执行此操作。
问题是当标签更新时,它不会接缝以调整按钮的大小。
可以通过在标签更改后添加[button sizeToFit];
来解决此问题。
我仍然在寻找一种无需在代码中添加此手动步骤即可运行的解决方案。
我提到有足够的空间可以进一步扩展按钮,仍然sizeToFit
接缝以放大按钮但仍不足以适合整个文本。
我错过了什么?
答案 0 :(得分:22)
[button sizeToFit]
对我不起作用,但我找到了一种单独使用IB的方法(xcode 4.5):
UIButton
content hugging
拖动到1(水平和垂直)compression resistance
拖至999(两者都是)constraints
下点击Width
并将priority
更改为250 UIButton
的{{1}}来控制左/右/上/下的填充答案 1 :(得分:2)
在设置标题后,您需要在按钮上调用sizeToFit
,以使其调整大小以适合给定的标题。
您可以通过继承UIButton
来删除手动步骤,重写setTitle:forControlState:
方法并在其中实施对sizeToFit
的调用。不要忘记调用超级实现,否则你的标题将不会被设置,并且会发生不好的事情。
答案 2 :(得分:-4)
在XCode 4.5及更高版本中,现在可以使用“自动布局/约束”来完成此操作。
主要优点是:
一些缺点:
最酷的是我们专注于声明一个意图,例如:
这是一个介绍自动布局的简单教程: 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
一开始需要一些时间,但看起来确实值得努力。
干杯!