【发布时间】:2013-07-21 22:31:17
【问题描述】:
如果我有一个使用自动布局排列的 UIButton,它的大小会很好地调整以适应它的内容。
如果我将图像设置为button.image,则内部尺寸似乎再次说明了这一点。
但是,如果我调整按钮的 titleEdgeInsets,布局不会考虑这一点,而是截断按钮标题。
如何确保按钮的固有宽度占 inset 的比例?
编辑:
我正在使用以下内容:
[self.backButton setTitleEdgeInsets:UIEdgeInsetsMake(0, 5, 0, 0)];
目标是在图像和文本之间添加一些分隔。
【问题讨论】:
-
您是否将其归档为雷达?这显然是 UIButton 的固有尺寸计算中的一个错误。
-
我准备提交雷达,但这实际上似乎是预期的行为。这记录在UIButton's *EdgeInsets 属性中:“在该矩形的大小调整为适合按钮文本之后,您指定的插入将应用于标题矩形。因此,正插入值实际上可能会剪切标题文本。[...]按钮不使用此属性来确定intrinsicContentSize 和sizeThatFits:。"
-
@GuillaumeAlgis 我会争辩说,虽然这是声明的行为,但在使用自动布局时,这根本不是人们所期望的。我已经提交了一个错误,并会鼓励其他人也提交一个。
-
如果你可以在这里链接到雷达错误,我们可以点击它并 +1 吗?
-
来自
titleEdgeInset文档:The insets you specify are applied to the title rectangle after that rectangle has been sized to fit the button’s text. Thus, positive inset values may actually clip the title text.因此,通过添加插图,您肯定会强制按钮剪辑文本
标签: ios cocoa-touch uiview uibutton autolayout