iOS筆記之UIButton的UIEdgeInsetsMake使用詳解

設置各個值得含義

//UIEdgeInsetsMake(<#T##top: CGFloat##CGFloat#>, <#T##left: CGFloat##CGFloat#>, <#T##bottom: CGFloat##CGFloat#>, <#T##right: CGFloat##CGFloat#>)

testBtn.imageEdgeInsets =UIEdgeInsetsMake(0,10,40,10);

//0 表示據(jù)原來的頂部 為0? //10 表示左邊框右移 10? (同理 -10 表示左邊框左移 10)//40 表示下邊框上移 40 //10 表示右邊框左移 10 (同理 -10 表示右邊框右移 10)

總之:這些參數(shù) 正值都是表示 向相反的方向移動相應的距離(例如:對top正值表示向下移動,負值表示向上移動)

這樣我們就可以在UIButton的外部輕松設置想要的樣式


titleEdgeInsets & imageEdgeInsets

這兩個屬性的效果是相輔相成的蝎困。如果給一個按鈕同事設置了title和image录语,他們默認的狀態(tài)是圖片在左,標題在右难衰,而且image和title之間沒有空隙钦无;那就這就引出一個問題逗栽,title和image的UIEdgeInsets屬性分別的相對于誰而言的盖袭?

image的UIEdgeInsets屬性的top,left彼宠,bottom都是相對于按鈕的鳄虱,right是相對于title;

title的UIEdgeInsets屬性的top凭峡,bottom拙已,right都是相對于按鈕的,left是相對于image摧冀;


contentEdgeInsets

我們都知道倍踪,UIButton按鈕可以只設置一個UILabel或者一個UIImageView,還可以同時具有UILabel和UIImageView索昂;如果給按鈕設置contentEdgeInsets屬性建车,就是按鈕的內容整體(包含UILabel和UIImageView)進行偏移。

按鈕內容整體向右下分別移動10像素:

代碼如下

/*

?typedef NS_ENUM(NSUInteger, MKButtonEdgeInsetsStyle) {

?MKButtonEdgeInsetsStyleTop, // image在上椒惨,label在下

?MKButtonEdgeInsetsStyleLeft, // image在左缤至,label在右

?MKButtonEdgeInsetsStyleBottom, // image在下,label在上

?MKButtonEdgeInsetsStyleRight // image在右康谆,label在左

?};

?*/

//MARK: -定義button相對label的位置

enumYWButtonEdgeInsetsStyle {

? ? caseTop

? ? caseLeft

? ? caseRight

? ? caseBottom

}

extension UIButton {


? ? funclayoutButton(style:YWButtonEdgeInsetsStyle, imageTitleSpace:CGFloat) {

? ? ? ? //得到imageView和titleLabel的寬高

? ? ? ? letimageWidth:CGFloat=self.imageView?.frame.size.width??0

? ? ? ? letimageHeight:CGFloat=self.imageView?.frame.size.height??0


? ? ? ? let labelWidth:CGFloat = self.titleLabel?.intrinsicContentSize.width ?? 0

? ? ? ? let labelHeight:CGFloat = self.titleLabel?.intrinsicContentSize.height ?? 0



? ? ? ? //初始化imageEdgeInsets和labelEdgeInsets

? ? ? ? varimageEdgeInsets =UIEdgeInsets.init()

? ? ? ? varlabelEdgeInsets =UIEdgeInsets.init()


? ? ? ? //根據(jù)style和space得到imageEdgeInsets和labelEdgeInsets的值

? ? ? ? switchstyle {

? ? ? ? case.Top:

? ? ? ? ? ? //上 左 下 右

? ? ? ? ? ? imageEdgeInsets =UIEdgeInsets(top: -labelHeight-imageTitleSpace/2, left:0, bottom:0, right: -labelWidth)

? ? ? ? ? ? labelEdgeInsets =UIEdgeInsets(top:0, left: -imageWidth, bottom: -imageHeight-imageTitleSpace/2, right:0)

? ? ? ? ? ? break


? ? ? ? case.Left:

? ? ? ? ? ? imageEdgeInsets =UIEdgeInsets(top:0, left: -imageTitleSpace/2, bottom:0, right: imageTitleSpace)

? ? ? ? ? ? labelEdgeInsets =UIEdgeInsets(top:0, left: imageTitleSpace/2, bottom:0, right: -imageTitleSpace/2)

? ? ? ? ? ? break


? ? ? ? case.Bottom:

? ? ? ? ? ? imageEdgeInsets =UIEdgeInsets(top:0, left:0, bottom: -labelHeight-imageTitleSpace/2, right: -labelWidth)

? ? ? ? ? ? labelEdgeInsets =UIEdgeInsets(top: -imageHeight-imageTitleSpace/2, left: -imageWidth, bottom:0, right:0)

? ? ? ? ? ? break


? ? ? ? case.Right:

? ? ? ? ? ? imageEdgeInsets =UIEdgeInsets(top:0, left: labelWidth+imageTitleSpace/2, bottom:0, right: -labelWidth-imageTitleSpace/2)

? ? ? ? ? ? labelEdgeInsets =UIEdgeInsets(top:0, left: -imageWidth-imageTitleSpace/2, bottom:0, right: imageWidth+imageTitleSpace/2)

? ? ? ? ? ? break


? ? ? ? }


? ? ? ? self.titleEdgeInsets= labelEdgeInsets

? ? ? ? self.imageEdgeInsets= imageEdgeInsets


? ? }


}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末领斥,一起剝皮案震驚了整個濱河市嫉到,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌月洛,老刑警劉巖何恶,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嚼黔,居然都是意外死亡导而,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門隔崎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來今艺,“玉大人,你說我怎么就攤上這事爵卒⌒槎校” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵钓株,是天一觀的道長实牡。 經(jīng)常有香客問我,道長轴合,這世上最難降的妖魔是什么创坞? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮受葛,結果婚禮上题涨,老公的妹妹穿的比我還像新娘。我一直安慰自己总滩,他們只是感情好纲堵,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著闰渔,像睡著了一般席函。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冈涧,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天茂附,我揣著相機與錄音,去河邊找鬼督弓。 笑死营曼,一個胖子當著我的面吹牛,可吹牛的內容都是我干的咽筋。 我是一名探鬼主播溶推,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蒜危?” 一聲冷哼從身側響起虱痕,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辐赞,沒想到半個月后部翘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡响委,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年新思,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赘风。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡夹囚,死狀恐怖,靈堂內的尸體忽然破棺而出邀窃,到底是詐尸還是另有隱情荸哟,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布瞬捕,位于F島的核電站鞍历,受9級特大地震影響,放射性物質發(fā)生泄漏肪虎。R本人自食惡果不足惜劣砍,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望扇救。 院中可真熱鬧刑枝,春花似錦、人聲如沸爵政。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽钾挟。三九已至,卻和暖如春饱岸,著一層夾襖步出監(jiān)牢的瞬間掺出,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工苫费, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留汤锨,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓百框,卻偏偏與公主長得像闲礼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內容