【问题标题】: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 使用文本和文本字段调整大小以采用可用大小。

感谢任何帮助

谢谢

【问题讨论】:

    标签: ios iphone objective-c autolayout


    【解决方案1】:

    试试这些自动布局约束:


    基本上:

    1. UITextField 对象的宽度约束应该是 Less Than or Equal 关系
    2. UIButton 对象的宽度约束应该是 Greater Than or Equal 关系
    3. 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

    【讨论】:

      猜你喜欢
      • 2012-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 2014-12-01
      相关资源
      最近更新 更多