2017-09-27 103 views
0

我需要一個帶有圖像內部圖像和按鈕下的文本的按鈕。我無法將圖像用作背景,因爲它會拉伸圖像。所以我的問題是如果我使用按鈕的圖像,標題將被圖像覆蓋。有沒有解決方案?帶標題和圖像的UIButton

這裏有一個例子應該怎麼看起來像在最後:

enter image description here

+1

是的,你可以通過調整標題和圖像插入來實現。 – Vishnuvardhan

回答

0

你可以做你喜歡的位置獨立的UIImage和的UILabel,並用透明的UIButton覆蓋。 這應該做的伎倆。

希望它有幫助。

0

你有兩個選擇

1)創建的UIView添加圖片,標籤和按鈕

2)您可以設置標題和圖像插入,你可以在廈門國際銀行做很容易

對於選項兩個I增加了簡單的例子,(您的值替換它)

enter image description here

enter image description here

0

可以繼承的UIButton並重新定義layoutSubviews方法。

0

您可以調整UIButton的以下屬性:var titleEdgeInsets: UIEdgeInsets,var imageEdgeInsets: UIEdgeInsets

這樣做的另一種方法是子類UIControl。這是一個UIView子類,意在用於這種情況。例如,UIButtonUIControl的子類。這樣你就可以更好地控制佈局,而且你不需要與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 
    } 
}