UIButton 設定圖片,標題的偏移位置EadgeInsets細節
在平時開發中,我們經常遇到各種各樣的按鈕,每次都要進行調節,而且調節的時候只能一個單位一個單位的試,這樣未免也太麻煩了.在調節座標過程中發現:
1.只有文字
這個沒什麼好說的,直接setTitle就行
2.只有圖片
也沒什麼說的,setBackgroundImage就行
3.有文字和圖片
(1)圖片在左,文字在右:
這是系統預設的樣式,直接setImage和setTitle就行.圖片和標題都預設垂直居中
UIButton *showButton = [[UIButtonalloc]initWithFrame:CGRectMake(100, 300, 100, 50)];
showButton.
[showButton setTitle:@"選擇"forState:UIControlStateNormal];
[showButton setImage:[UIImageimageNamed:@"mainCellCaiClick"] forState:UIControlStateNormal];
(2)圖片在上,文字在下,水平居中:
這個就有必要說了,因為系統預設的樣式是上面那樣的,所以文字會預設向右偏移圖片的寬度,同時圖片也會向左偏移.如果我們想讓標題和圖片都水平居中的話,就得強制偏移量還原成0
這時候需要設定EdgeInsets,加上下面兩句話:
[showButton setImageEdgeInsets:UIEdgeInsetsMake(0, 0,20,showButton.titleLabel.intrinsicContentSize.width)];
[showButton setTitleEdgeInsets:UIEdgeInsetsMake(0, -showButton.imageView.intrinsicContentSize.width, -20, 0)];
順便提一下:UIEdgeInsetsMake(top,left,bottom,right) 這裡的四個引數是設定圖片或者標題向 上左下右 方向移動的引數
(3)圖片在下文字在上,水平居中:
和(2)中的原理是一樣的
測試環境:iOS8,iOS10(iOS9應該也是可行的)