UIButton image位置的調節

2021-10-04 09:26:31 字數 2362 閱讀 4502

調節image的位置主要是通過 uibutton的imageedgeinsets和titleedgeinsets這兩個屬性來實現的

cgfloat imagewidth = self.imageview.bounds.size.width;

cgfloat imageheight = self.imageview.bounds.size.height;

cgfloat titlewidth = self.titlelabel.bounds.size.width;

cgfloat titleheight = self.titlelabel.bounds.size.height;

cgfloat insetamount = space / 2;

cgfloat width = self.frame.size.width;

居左,調整 image 和 文字之間的間距 (space 是兩者之間的間距)

self.imageedgeinsets = uiedgeinsetsmake(0,-insetamount, 0, insetamount);

self.titleedgeinsets = uiedgeinsetsmake(0, insetamount, 0, -insetamount);

居右,調整 image 和 文字之間的間距

self.imageedgeinsets = uiedgeinsetsmake(0,(titlewidth + insetamount), 0, -(titlewidth + insetamount));

self.titleedgeinsets = uiedgeinsetsmake(0,-(imagewidth + insetamount), 0, (imagewidth + insetamount));

居上,調整 image 和 文字之間的間距

self.imageedgeinsets = uiedgeinsetsmake(-titleheight - insetamount,(width - imagewidth)/2, 0, (width - imagewidth)/2 - titlewidth);

self.titleedgeinsets = uiedgeinsetsmake(0, -imagewidth, -imagewidth - insetamount, 0);

居下,調整 image 和 文字之間的間距

self.imageedgeinsets = uiedgeinsetsmake(0, (width - imagewidth)/2 , -titleheight - insetamount, (width - imagewidth)/2 - titlewidth);

self.titleedgeinsets = uiedgeinsetsmake(-imageheight - insetamount, -imagewidth, 0, 0);

typedef ns_enum(nsuinteger,imagelocation) ;

- (void)setimage:(imagelocation)location space:(cgfloat)spaceelse if (location == imagelocationright)else if (location == imagelocationtop)else if (location == imagelocationbottom)

}

public  enum  imagelocation

/// 設定image位置(必須要先設定frame)

/// - parameters:

/// - location: 位置

/// - space: 標題與的間距

func setimage(location:imagelocation,space:cgfloat)

let imagewidth = imagev.bounds.size.width

let imageheight = imagev.bounds.size.height

let titlewidth = label.bounds.size.width

let titleheight = label.bounds.size.height

let width = frame.size.width

switch location

}

如果沒有提前設定frame的是無法獲取到title的寬度和高度的,如果通過snapkit或者masonry 布局的話,可以提前設定size,或者在布局結束後再設定image的位置

uclinux 棧位置 位置棧

uclinux 棧位置 positionstack是乙個可以做到這一點的api 它也相反。因此,假設您有經度和緯度,則可能想找出確切的位置。您可以將這些座標傳送給api,然後您會收到其中的響應。access key your access key query 40.7638435,73.972969...

crontab檔案位置和日誌位置

檔案位置 var spool cron 日誌檔案位置 var log ls var log cron 錯誤日誌 當crond執行任務失敗時會給使用者發一封郵件 可以將每條crontab中的任務增加自己的日誌,便於查詢執行失敗原因。eg 6 home stack test.sh mylog.log 2...

位置關係 A

請用 c語言 程式設計解決問題 在二維平面直角座標系上,分別給定兩個圓的圓心座標值 和各自的 半徑值,請判斷他們的位置關係。兩個圓的位置關係有以下幾種情況 外離 兩個圓沒有交點 外切 兩個圓只有乙個交點,且都交點不在任何乙個圓的內部 相交 兩個圓有兩個交點 內切 兩個圓只有乙個交點,且除交點外,乙個...