1. 程式人生 > >UIButton 設定圖片,標題的偏移位置EadgeInsets細節

UIButton 設定圖片,標題的偏移位置EadgeInsets細節

在平時開發中,我們經常遇到各種各樣的按鈕,每次都要進行調節,而且調節的時候只能一個單位一個單位的試,這樣未免也太麻煩了.在調節座標過程中發現:

1.只有文字

這個沒什麼好說的,直接setTitle就行

2.只有圖片

也沒什麼說的,setBackgroundImage就行

3.有文字和圖片

(1)圖片在左,文字在右:

這是系統預設的樣式,直接setImage和setTitle就行.圖片和標題都預設垂直居中

UIButton *showButton = [[UIButtonalloc]initWithFrame:CGRectMake(10030010050)];

    showButton.

backgroundColor = kBlueColor;

    [showButton setTitle:@"選擇"forState:UIControlStateNormal];

    [showButton setImage:[UIImageimageNamed:@"mainCellCaiClick"forState:UIControlStateNormal];


(2)圖片在上,文字在下,水平居中:

這個就有必要說了,因為系統預設的樣式是上面那樣的,所以文字會預設向右偏移圖片的寬度,同時圖片也會向左偏移.如果我們想讓標題和圖片都水平居中的話,就得強制偏移量還原成0

這時候需要設定EdgeInsets,加上下面兩句話:

    [showButton setImageEdgeInsets:UIEdgeInsetsMake(00,20,showButton.titleLabel.intrinsicContentSize.width)];

    [showButton setTitleEdgeInsets:UIEdgeInsetsMake(0, -showButton.imageView.intrinsicContentSize.width, -200)];


順便提一下:UIEdgeInsetsMake(top,left,bottom,right) 這裡的四個引數是設定圖片或者標題向 上左下右 方向移動的引數

(3)圖片在下文字在上,水平居中:

和(2)中的原理是一樣的

測試環境:iOS8,iOS10(iOS9應該也是可行的)