2016年5月20日 星期五

讓UIButton的文字title顯示在圖片上

// 因為UIButton預計是將title接在image的右邊,所以要用UIEdgeInsets把title往左移到跟圖片相等的位置。
if let imageWidth = yourButton.imageView?.intrinsicContentSize().width {
        yourButton.titleEdgeInsets = UIEdgeInsetsMake(0, -imageWidth, 0, 0)

        }

// 其實setImage的作用應該是在Button上的加上小圖示
[[小圖示]按鈕文字]

// 另外一種作法是用setBackgroundImage來作為Button的底圖
button.setBackgroundImage(UIImage(named: "home_button.png"), forState: .Normal)

button.setBackgroundImage(UIImage(named: "home_button_light.png"), forState: .Highlighted)

2 則留言:

  1. 設置titleEdgeInsets或imageEdgeInsets也是不錯的選擇的

    回覆刪除
    回覆
    1. 對呀,這是我筆記中列的第一種作法,
      但後來發現這種作法只是一種workaround
      因為他的預設排版是文字加到圖片的右方。
      才改用第二種做法。

      刪除