向UIButton添加左右填充
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了向UIButton添加左右填充相关的知识,希望对你有一定的参考价值。
我想向按钮添加一些左右填充,我看到它们具有titleEdgeInsets
属性。这是我的代码:
import UIKit
class QuickPromptButton: UIButton {
var userFacingValue: String?
var answerValue: String?
override init(frame: CGRect) {
super.init(frame: frame)
layer.borderColor = UIColor.primaryColor.cgColor
layer.borderWidth = 1
layer.cornerRadius = 15
setTitleColor(.primaryColor, for: .normal)
titleEdgeInsets = .init(top: 0, left: -10, bottom: 0, right: 10)
contentVerticalAlignment = .center
contentHorizontalAlignment = .center
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
但是,这就是他们现在的样子:
问题是文本超出边界。知道为什么吗?
这就是我在左右两边都使用10:
答案
override var intrinsicContentSize: CGSize {
let originalSize = super.intrinsicContentSize
let size = CGSize(width: originalSize.width + 20, height: originalSize.height)
return size
}
覆盖intrinsicContentSize
并在当前宽度的顶部添加总填充最终对我有用,尽管不确定这是否是正确的方法。
以上是关于向UIButton添加左右填充的主要内容,如果未能解决你的问题,请参考以下文章