UIButton內有兩個控件titleLabel和imageView,可以用來顯示一個 文本和圖片,這里的圖片區別于背景圖片。給UIButton同時設置了title和image后,它們會圖片在左邊,文本在圖片右邊顯示。它們兩個做為一個整體依賴于button的contentHorizontalAlignment居左居右或居中顯示。contentVerticalAlignment居上居中聚下顯示。
想兩改變兩個子控件的顯示位 置,可以分別通過setTitleEdgeInsets和setImageEdgeInsets來實現。需要注意的是,對titleLabel和 imageView設置偏移,是針對它當前的位置起作用的,并不是針對它距離button邊框的距離的。記得調整其中一個位置的時候看下另外一個是否需要調整。
文本size的計算:
iOS7之前可以使用sizeWithFont:
獲取文本的寬度,
iOS7及之后建議使用sizeWithAttributes:
進行獲取