0

我有一个带有标题、滚动视图(用于文本)和几个按钮的简单视图。我在故事板中创建了视图。除了似乎有一些隐藏的约束影响了我的一个按钮之外,一切都运行良好。

按钮标题在代码中设置。设置它们会使按钮按预期变宽。我对按钮有以下限制:

  • 他们每个人的宽度> = 73
  • 左按钮与其基本视图的左边缘之间具有标准的水平约束。右键在它和基本视图的右边缘之间有标准的水平约束。(换句话说,我将它们与指南对齐 - 约束是自动创建的。)
  • 一个按钮的高度为 44,并具有与基本视图底部的垂直约束。
  • 另一个是底部和顶部与它对齐。

而已。

我遇到的问题是,即使两个按钮之间似乎有足够的空间(并且它们之间没有约束),如果按钮文本足够大,从按钮的侧边到标题的插图变成几乎为零,因此文本显示在按钮的边缘。当我手动添加边缘插图时,使用

self.okButton.titleEdgeInsets = UIEdgeInsetsMake(0.0, 0.6, 0.0, 0.6);

文本被压扁(椭圆出现在其中)。同时,两个按钮之间有大约 65 pts 的空间,绰绰有余。

我唯一能想到的是,有一些不可见的约束阻止我的按钮变大。但我没有看到一个。我只需要 10-15 分就可以让一切看起来都很好。

感谢您能给我的任何见解。

更新(回答):我发现这篇文章很有帮助。事实证明,我需要设置self.okbutton.contentEdgeInsets. 并在设置我的按钮标题(似乎自动调用sizeToFit:)之前调用它。问题是我使用的是自定义按钮(没有内置插图),所以我确实需要自己设置它们;我只是没有使用正确的属性。使用titleEdgeInsets正插图实际上使可以绘制文本的区域更小,这就是它挤压文本的原因。显然,当您尝试缩进文本时,它才是真正有用的属性。您必须通过将负插图传递到相应的另一侧来抵消缩进,以免使文本绘制区域变小。即,button.titleEdgeInsets = UIEdgeInsetMake(0.0, 1.0, 0.0, -1.0)将按钮中的文本向右移动而不挤压文本)。

4

0 回答 0