调整 titleEdgeInsets 和 imageEdgeInsets 时 UIButton 上的 title 和 text 之间的间距不正确
Posted
技术标签:
【中文标题】调整 titleEdgeInsets 和 imageEdgeInsets 时 UIButton 上的 title 和 text 之间的间距不正确【英文标题】:The space between title and text on UIButton is not correct when adjusting titleEdgeInsets and imageEdgeInsets 【发布时间】:2019-09-17 02:53:19 【问题描述】:我想调整UIButton上文字和图片的间距,
let space = 10
button.contentHorizontalAlignment = .left
button.titleEdgeInsets = UIEdgeInsets(top: 0, left: space, bottom: 0, right: 0)
看起来不错,图中的空间绝对是10。
现在,我希望他们居中,
let space = 10
button.contentHorizontalAlignment = .center
button.titleEdgeInsets = UIEdgeInsets(top: 0, left: space, bottom: 0, right: 0)
看起来小了很多,空间只有5个。我从Reveal找的。p>
为什么空间减少了一半?
我搜索了,this 告诉我如何将标题和图像中心作为一个实体。它会像这样调整它们的空间:
CGFloat spacing = 10; // the amount of spacing to appear between image and title
tabBtn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, spacing);
tabBtn.titleEdgeInsets = UIEdgeInsetsMake(0, spacing, 0, 0);
是的,它确实运作良好,但为什么呢?从字母上看,空格应该是20吧?
Here 是一个例子,有帮助吗?
提前致谢。
【问题讨论】:
【参考方案1】:你没有这样设置imageEdgeInsets
:
rightButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 10)
所以总代码在这里:
leftButton.contentHorizontalAlignment = .left
leftButton.imageView?.backgroundColor = .red
leftButton.titleLabel?.backgroundColor = .gray
leftButton.titleEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0)
rightButton.contentHorizontalAlignment = .center
rightButton.imageView?.backgroundColor = .red
rightButton.titleLabel?.backgroundColor = .gray
rightButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 10)
rightButton.titleEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0)
原因:
实际上,您需要同时设置imageEdgeInsets
左对齐或居中对齐
但是当它的左对齐图像时,右侧没有空间可以设置Insets。
查看此代码:
leftButton.imageEdgeInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 100)
这里也没有空格。
所以回家你就会知道插图是如何工作的:
为您提供更多帮助:
Click here
【讨论】:
以上是关于调整 titleEdgeInsets 和 imageEdgeInsets 时 UIButton 上的 title 和 text 之间的间距不正确的主要内容,如果未能解决你的问题,请参考以下文章