自动布局根据文本调整按钮大小并让文本字段填充可用空间
Posted
技术标签:
【中文标题】自动布局根据文本调整按钮大小并让文本字段填充可用空间【英文标题】:Autolayout resize button based on text and have textfield fill available space 【发布时间】:2014-04-22 17:21:40 【问题描述】:我正在使用自动布局开发一个 ios 应用程序,
我在它旁边有一个 UITextField 和一个 UIButton。
UIButton 文本是动态更改的。它可以很短(3 个字母)或很长(15 个字母)
我需要添加约束来实现以下目标:
1) 当我更改 UIbutton 文本时,我需要调整按钮大小以适应新文本
2) UITextField 应该调整大小以占用按钮文本更改后剩余的可用空间
我尝试了以下操作(如图所示):
将 UITextView 的前导约束添加到 superview 20
将 UIButton 的尾随约束添加到 superview 20
在它们之间添加了一个固定的距离 10
但现在我被困在如何使 UIButton 使用文本和文本字段调整大小以采用可用大小。
感谢任何帮助
谢谢
【问题讨论】:
【参考方案1】:试试这些自动布局约束:
基本上:
UITextField
对象的宽度约束应该是 Less Than or Equal
关系
UIButton
对象的宽度约束应该是 Greater Than or Equal
关系
UITextField
对象的水平 Content Hugging Priority
应该是 249(根据我上面显示的约束设置)
及相关代码为:
[buttonObject setTitle:@"Button title is too... zzz" forState:UIControlStateNormal];
[buttonObject sizeToFit];
...或类似的东西
【讨论】:
我认为“sizeToFit”是这里的关键。【参考方案2】:增加button horizontal content hugging priority
,使其高于相邻组件的horizontal content hugging priority
【讨论】:
以上是关于自动布局根据文本调整按钮大小并让文本字段填充可用空间的主要内容,如果未能解决你的问题,请参考以下文章