我需要一個帶有圖像內部圖像和按鈕下的文本的按鈕。我無法將圖像用作背景,因爲它會拉伸圖像。所以我的問題是如果我使用按鈕的圖像,標題將被圖像覆蓋。有沒有解決方案?帶標題和圖像的UIButton
這裏有一個例子應該怎麼看起來像在最後:
我需要一個帶有圖像內部圖像和按鈕下的文本的按鈕。我無法將圖像用作背景,因爲它會拉伸圖像。所以我的問題是如果我使用按鈕的圖像,標題將被圖像覆蓋。有沒有解決方案?帶標題和圖像的UIButton
這裏有一個例子應該怎麼看起來像在最後:
你可以做你喜歡的位置獨立的UIImage和的UILabel,並用透明的UIButton覆蓋。 這應該做的伎倆。
希望它有幫助。
它不適合我...標題仍然覆蓋 – LJulz
可以繼承的UIButton並重新定義layoutSubviews方法。
您可以調整UIButton
的以下屬性:var titleEdgeInsets: UIEdgeInsets
,var imageEdgeInsets: UIEdgeInsets
。
這樣做的另一種方法是子類UIControl
。這是一個UIView
子類,意在用於這種情況。例如,UIButton
是UIControl
的子類。這樣你就可以更好地控制佈局,而且你不需要與UIButton
的內置行爲作鬥爭。
您可以在代碼中或使用Interface Builder在xib
文件中執行佈局。
class MyButton: UIControl {
var imageView: UIImageView
var label: UILabel
// adjust colors for changed states like highlighting, etc.
override var isHighlighted: Bool {
didSet {
if isHighlighted {
backgroundColor = UIColor.grey
} else {
backgroundColor = UIColor.white
}
}
}
override var isSelected: Bool { didSet { ... } }
override var isEnabled: Bool { didSet { ... } }
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
override init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
func commonInit() {
imageView = UIImageView(image: UIImage(...))
addSubView(imageView)
label = UILabel(frame: CGRect(...))
addSubView(label)
// TODO: add constraints for layout
}
}
是的,你可以通過調整標題和圖像插入來實現。 – Vishnuvardhan