關於UIButton中,文字和圖片交換位置的代碼


UIButton中,如果文字和圖片都同時存在的話,系統默認圖片在左邊,文字在右邊,有些UI需求是圖片在右邊,文字在左邊,這就需要用代碼調試,使UIButton中兩個元素的位置發生交換。

設置UIButton的兩個屬性可以達到交換的目的,這兩個屬性是titleEdgeInsets和imageEdgeInsets.

UIEdgeInsets為一個結構體

typedef struct UIEdgeInsets {
      CGFloat top, left, bottom, right;     
} UIEdgeInsets;

這個結構體表示上,左,下,右的偏移量,

top : 為正數的時候,是往下偏移,為負數的時候往上偏移;

left : 為正數的時候往右偏移,為負數的時候往左偏移;

bottom : 為正數的時候往上偏移,為負數的時候往下偏移;

right :為正數的時候往左偏移,為負數的時候往右偏移;

兩個元素,文字和圖片交換的第一步,要取得這兩個元素的寬度值

CGFloat labelWidth = button.titleLabel.intrinsicContentSize.width; //注意不能直接使用titleLabel.frame.size.width,原因為有時候獲取到0值
CGFloat imageWidth = button.imageView.frame.size.width;
CGFloat space = 8.f; //定義兩個元素交換后的間距

第二步設置button偏移量屬性

button.titleEdgeInsets = UIEdgeInsetsMake(0, - imageWidth - space,0,imageWidth + space);
button.imageEdgeInsets = UIEdgeInsetsMake(0, labelWidth + space, 0,  -labelWidth - space);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM