2017-07-25 55 views

回答

0

如果你想做到这一点,你可以创建自定义视图:采取 - UIView并将其级别更改为UIButton并添加UILabel并应用所有必需的约束。 有了这一切设置,你可以实现愿望的用户界面。 请试试这个如果你想实现这样的。

-1

如果你想根据标签文本改变按钮的宽度,

1.dont固定标签宽度

2.Now,在标签宽度即equalwidths取决于按钮的宽度。

0

Autolayout constraints

  • UILabel对象的宽度约束应该是小于 或等于关系
  • UIButton对象的宽度约束应该是一个大 大于或等于关系
  • UILabel对象的水平内容抱死优先 应该是249(根据我上面显示的约束设置)
  • 并将UILabel宽度常数值设置为您的要求的最大可能值。

及相关代码:

[buttonObject setTitle:@"Button title is ..." forState:UIControlStateNormal]; 
[buttonObject sizeToFit]; 
0

按钮已经将它的“内在内容宽度”,以适应其标题。

如果没有其他约束覆盖内在内容宽度,则该按钮将是该内在宽度,这正是您想要的。演示:

demo

这是我的故事板轮廓:

storyboard outline

我设置为“左”(而不是“填充”)水平叠层视图的对齐所以它不会拉伸第一行以填充屏幕宽度。

如果您的按钮的内在宽度为而不是,那么您有更高优先级(可能优先级为1000)的约束将其强制为其他宽度。

您可以尝试强制它始终保持其内容宽度,方法是将内容拥抱优先级和其内容压缩优先级设置为1000。

如果您将两个优先级都设置为1000,并且您有任何其他必需的约束可阻止该按钮成为其固有大小,那么您将在运行时的调试日志中收到错误消息,告诉您存在冲突(不可满足的)约束。这些消息将包含完整的约束条件,因此您可以尝试追踪您不想要的约束条件。

+0

感谢@rob,我有一些问题: 限制你到按钮给出什么?有没有依赖堆栈视图? –

+0

我没有对按钮设置任何约束。顶层(垂直)堆叠视图具有约束到上海华的顶部,导致,和后缘。文档大纲显示了我创建的每个约束。 –

+0

如果我不想使用堆栈视图,该怎么办? –