无论文本长度如何,都将图像对齐到 UIButton 的右上角
Align image at the right corner of UIButton irrespective of text length
无论文本长度如何,都需要将图像对齐到 UIButton 的右上角。我已经设法在文本的右侧设置了一个图像,但它在文本结束的地方放置了一个图像。下面是我得到的代码和输出。
btnSelect.titleEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0)
btnSelect.imageEdgeInsets = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 0)
使用UIButton
的override
方法并管理您的标题和图像框架。
这里是 UIButton
子类。
class ButtonIconRight: UIButton {
override func imageRect(forContentRect contentRect:CGRect) -> CGRect {
var imageFrame = super.imageRect(forContentRect: contentRect)
imageFrame.origin.x = self.bounds.width - imageFrame.width
return imageFrame
}
override func titleRect(forContentRect contentRect:CGRect) -> CGRect {
var titleFrame = super.titleRect(forContentRect: contentRect)
if (self.currentImage != nil) {
titleFrame.origin.x = 0
}
return titleFrame
}
}
无论文本长度如何,都需要将图像对齐到 UIButton 的右上角。我已经设法在文本的右侧设置了一个图像,但它在文本结束的地方放置了一个图像。下面是我得到的代码和输出。
btnSelect.titleEdgeInsets = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 0)
btnSelect.imageEdgeInsets = UIEdgeInsets(top: 0, left: 20, bottom: 0, right: 0)
使用UIButton
的override
方法并管理您的标题和图像框架。
这里是 UIButton
子类。
class ButtonIconRight: UIButton {
override func imageRect(forContentRect contentRect:CGRect) -> CGRect {
var imageFrame = super.imageRect(forContentRect: contentRect)
imageFrame.origin.x = self.bounds.width - imageFrame.width
return imageFrame
}
override func titleRect(forContentRect contentRect:CGRect) -> CGRect {
var titleFrame = super.titleRect(forContentRect: contentRect)
if (self.currentImage != nil) {
titleFrame.origin.x = 0
}
return titleFrame
}
}