#iOS開發(fā)#UIButton文字與圖片的布局

前言

之前對于那種上面是圖片下面是文字的按鈕都是通過一個ImageView、一個Label句喜、一個Button實現(xiàn)的攀唯。ImageView和Label在同一層。然后Button覆蓋在他們上面主守。實現(xiàn)以下效果。

WX20170411-145933.png

其實也一直知道Button有一個屬性可以去控制這個布局榄融。但是一直都懶得搞...今天看到了就寫篇文章分享一下吧参淫。

正文

UIButton中有兩個屬性分別是imageEdgeInsetstitleEdgeInsets用來控制文本與圖片的布局。還有一個contentEdgeInsets用來控制內(nèi)容的布局愧杯。
我們先來看看默認是什么樣的涎才。默認值為UIEdgeInsetsZero

WX20170412-144322.png

    self.button.titleLabel.backgroundColor = [UIColor blueColor];
    self.button.imageEdgeInsets = UIEdgeInsetsZero;
    self.button.titleEdgeInsets = UIEdgeInsetsZero;

<p> </p> <p> </p> <p> </p> <p> </p> <p> </p>

我們先來看看如果修改titleEdgeInsets會怎么樣。

1力九、Right為正數(shù)

WX20170412-144001.png

整個label往左邊挪了一點點耍铜。但是已經(jīng)擠壓了。

    self.button.titleLabel.backgroundColor = [UIColor blueColor];
    self.button.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 30);

2跌前、Left為正數(shù)

WX20170412-150709@2x.png

整個label往右邊挪了一點點棕兼。同樣被擠壓。

    self.button.titleLabel.backgroundColor = [UIColor blueColor];
    self.button.titleEdgeInsets = UIEdgeInsetsMake(0, 30, 0, 0);

3抵乓、Right為負數(shù)

WX20170412-145040@2x.png

整個label往左邊挪了一點點伴挚。沒有被擠壓。

    self.button.titleLabel.backgroundColor = [UIColor blueColor];
    self.button.titleEdgeInsets = UIEdgeInsetsMake(0, -30, 0, 0);

4灾炭、Left為負數(shù)

WX20170412-150248@2x.png

整個label往右邊挪了一點點茎芋。沒有被擠壓。

    self.button.titleLabel.backgroundColor = [UIColor blueColor];
    self.button.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, -30);

UIEdgeInsets

補充知識蜈出√锩郑看到這里我想大家應(yīng)該都會有一些疑問。那我們就先來看看這個屬性铡原。

    typedef struct UIEdgeInsets {
    CGFloat top, left, bottom, right;  // specify amount to inset (positive) for
 each of the edges. values can be negative to 'outset'
} UIEdgeInsets;

這就是一個結(jié)構(gòu)體偷厦。里面包含四個變量。分別是上下左右燕刻。代表控件距離四周的距離沪哺。我們可以看下圖會有更清晰的認識了袁。

1350207-5ea71c94e013a67f.png

所以我們在上面那部分的實驗中畦韭。為正數(shù)的值往往都是被被擠壓的。為負值都會被拉伸碌宴。


1、文字與圖片都居中顯示

好了籍滴。我們現(xiàn)在去實現(xiàn)讓文字與圖片都居中顯示酪夷。

WX20170414-145631@2x.png
   self.button.titleLabel.backgroundColor = [UIColor blueColor];
   self.button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, -self.button.titleLabel.intrinsicContentSize.width);
   self.button.titleEdgeInsets = UIEdgeInsetsMake(0, -self.button.imageView.frame.size.width, 0, 0);

大家會看到這里有一個intrinsicContentSize。具體的等下會說孽惰。大家可以暫時理解為這是lable的實際大小晚岭。這里不能使用size。在iOS8之后titleLabel的size為0勋功。是沒什么意義的坦报。如果想先理解intrinsicContentSize可以看看這篇文章
那么我們現(xiàn)在來思考一下這兩個值是為什么狂鞋。相當(dāng)于我們就是同時將兩個控件都移動到了中間片择。所以文字與圖片都居中顯示。

2骚揍、文字與圖片都水平居中字管,圖片在上、文字在下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末信不,一起剝皮案震驚了整個濱河市嘲叔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抽活,老刑警劉巖硫戈,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異下硕,居然都是意外死亡丁逝,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門卵牍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來果港,“玉大人沦泌,你說我怎么就攤上這事糊昙。” “怎么了谢谦?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵释牺,是天一觀的道長。 經(jīng)常有香客問我回挽,道長没咙,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任千劈,我火速辦了婚禮祭刚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己涡驮,他們只是感情好暗甥,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捉捅,像睡著了一般撤防。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棒口,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天寄月,我揣著相機與錄音,去河邊找鬼无牵。 笑死漾肮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的合敦。 我是一名探鬼主播初橘,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼充岛!你這毒婦竟也來了保檐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤崔梗,失蹤者是張志新(化名)和其女友劉穎夜只,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒜魄,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡扔亥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谈为。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旅挤。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖伞鲫,靈堂內(nèi)的尸體忽然破棺而出粘茄,到底是詐尸還是另有隱情,我是刑警寧澤秕脓,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布柒瓣,位于F島的核電站,受9級特大地震影響吠架,放射性物質(zhì)發(fā)生泄漏芙贫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一傍药、第九天 我趴在偏房一處隱蔽的房頂上張望磺平。 院中可真熱鬧魂仍,春花似錦、人聲如沸拣挪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽媒吗。三九已至仑氛,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闸英,已是汗流浹背锯岖。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留甫何,地道東北人出吹。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像辙喂,于是被迫代替她去往敵國和親捶牢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容