【发布时间】:2020-08-30 18:28:14
【问题描述】:
我需要将按钮图像放在文本之后。根据我在 SoF 上找到的一些答案,我将 UIButton 子类化如下:
class RightAlignedIconButton: UIButton {
override func titleRect(forContentRect contentRect: CGRect) -> CGRect {
var frame = super.titleRect(forContentRect: contentRect)
frame.origin.x = titleEdgeInsets.left
return frame
}
override func imageRect(forContentRect contentRect: CGRect) -> CGRect {
let titleRectangle = titleRect(forContentRect: contentRect)
var frame = super.imageRect(forContentRect: contentRect)
frame.origin.x = titleRectangle.origin.x + titleRectangle.width + imageEdgeInsets.left
return frame
}
}
我遇到的问题是,当我使用 acceptanceStatusButton.setTitle("New text", for: .normal) 更改文本时,尽管文本更长/更短,但图标仍保持在原来的位置(因此有时我在新的长文本顶部有图标)。我该如何解决这个问题?
【问题讨论】:
-
检查了您的代码,似乎工作正常
-
尝试输入很长的文本,图标移动到文本旁边,按钮有宽度限制吗?还是您重写了
intrinsicSize方法以返回错误值?
标签: ios swift uibutton autolayout uikit