uibutton共有三個相關屬性: 1.contentedgeinsets 2.titleedgeinsets 3.imageedgeinsets 本文將一一介紹.#uiedgeinsets 先來看看這個uiedgeinsets:
typedef struct uiedgeinsets uiedgeinsets;
複製**
原來是結構體,它的四個引數:top, left, bottom, right, 分別表示距離上邊界,左邊界,下邊界,右邊界的位移,預設值均為0。
#contentedgeinsets 我們都知道,uibutton按鈕可以只設定乙個uilabel或者乙個uiimageview,還可以同時具有uilabel和uiimageview;如果給按鈕設定contentedgeinsets屬性,就是按鈕的內容整體(包含uilabel和uiimageview)進行偏移。 按鈕內容整體向右下分別移動10畫素:
button.contentedgeinsets = uiedgeinsetsmake(10, 10, -10, -10);
複製**
#titleedgeinsets & imageedgeinsets 這兩個屬性的效果是相輔相成的。如果給乙個按鈕同事設定了title和image,他們預設的狀態是在左,標題在右,而且image和title之間沒有空隙;那就這就引出乙個問題,title和image的uiedgeinsets屬性分別的相對於誰而言的?
真相只有乙個:image的uiedgeinsets屬性的top,left,bottom都是相對於按鈕的,right是相對於title; title的uiedgeinsets屬性的top,bottom,right都是相對於按鈕的,left是相對於image;
知道真相的你不知道有沒有眼淚流下來,怪不得之前怎麼設定都不是想要的結果,原來相對於誰的位移壓根沒有搞清楚。現在既然搞清楚了,我們來試一下:
title在左,image在右:
//拿到title和image的大小:
cgsize titlesize = self.purebutton.titlelabel.bounds.size;
cgsize imagesize = self.purebutton.imageview.bounds.size;
//分別設定偏移量:記住偏移量是位移
self.purebutton.titleedgeinsets = uiedgeinsetsmake(0, -imagesize.width, 0, imagesize.width);
self.purebutton.imageedgeinsets = uiedgeinsetsmake(0, titlesize.width, 0, -titlesize.width);
複製**
image在上,title在下:
// 向右移動的距離是標題寬度的一半,向上移動的距離是高度的一半
//標題 向左移動的距離是寬度的一半,向下移動的距離是標題高度的一半
self.purebutton.imageedgeinsets = uiedgeinsetsmake(-imagesize.height/2, titlesize.width/2, imagesize.height/2, -titlesize.width/2);
self.purebutton.titleedgeinsets = uiedgeinsetsmake(titlesize.height/2, -imagesize.width/2, -titlesize.height/2, imagesize.width/2);
複製**
#最後
這篇沒有demo...( 太簡單了)
關於UILabel和UIButton新增下劃線
關於uilabel和uibutton有的時候需要新增下劃線,一般有兩種方式通過預設的 nsmutableattributedstring設定,第二種就是在drawrect中畫一條下劃線,本文就簡單的選擇第一種,第二種有興趣的可以自己研究一下。uilabel設定下劃線 1 2 3 4 5 6 7 8 ...
UIKit學習 02 關於UIButton
按鈕的三種狀態 要為按鈕設定三種狀態都不同的外觀,那麼按鈕的type要設定為custom uibutton的常見設定 setget 建立 建立按鈕 uibutton btn uibutton alloc init 設定背景 btn setbackgroundimage uiimage imagena...
UIButton自帶的imageView的顯示
只有設定了之後,button.imageview才會顯示,要不然不會顯示,設定layer也不會顯示。要這樣之後,才會顯示 button setimage uiimage imagenamed laugthhorse.png forstate uicontrolstatenormal 接下來就可以設定...