UIButton:容器中的文本居中,图像左侧
Posted
技术标签:
【中文标题】UIButton:容器中的文本居中,图像左侧【英文标题】:UIButton: Center text in container and left image to the side 【发布时间】:2019-10-10 16:11:37 【问题描述】:我希望我的UIButton
将文本居中,然后在此基础上将图像放置在其左侧。
到目前为止,我有这个例子(下图),但文本没有居中(检查红线)。此外,蓝色背景旨在显示此按钮的总宽度。
我怎样才能做到这一点?
【问题讨论】:
到目前为止你尝试过什么?你能展示你的代码吗? 老实说,我刚刚尝试了一些只使用标题和图片插图的扩展。此外,更改 XIB 文件中对齐和定位的一些设置。到目前为止没有成功。 【参考方案1】:其实很简单。只需将图像的宽度添加到按钮的contentEdgeInsets.right
:
let t = "Text I want centered".uppercased()
let i = UIImage(named: "person.fill")
let button = UIButton(type: .system)
button.layer.borderWidth = 1
view.addSubview(button)
button.setTitle(t, for: .normal)
button.setImage(i, for: .normal)
button.contentEdgeInsets.right = i?.size.width ?? 0
button.sizeToFit()
print(button.frame.width) // prints "212.0"
print(button.titleLabel?.frame) // prints "(19.0, 1.0, 174.0, 18.0)"
print
语句显示 titleLabel
完全居中(因为 19.0 + 174.0 + 19.0 = 212.0)。
【讨论】:
以上是关于UIButton:容器中的文本居中,图像左侧的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp UIButton类别用于垂直居中标题标签和图像。文本标签位于图像下方。