如何利用系統(tǒng)的Button設(shè)置titleLable和imageView的位置和設(shè)置imageView的顯示比例

1>眾所周知,在給系統(tǒng)的Button設(shè)置文字和image的時(shí)候(非背景顏色),系統(tǒng)默認(rèn)是左邊圖片,右邊文字,可現(xiàn)在需求是,左邊是文字右邊是圖片.那么我們?nèi)绾螌?shí)現(xiàn)這一效果呢?

button有一個(gè)我們很少用的兩個(gè)屬性,分別是imageEdgeInsets和titleEdgeInsets,這兩個(gè)屬性就是分別設(shè)置圖片和文字的距上下左右的距離,我們可以這樣設(shè)置

addressBtn.imageEdgeInsets=UIEdgeInsetsMake(0, addressBtn.titleLabel.w,0, -addressBtn.titleLabel.w);

addressBtn.titleEdgeInsets=UIEdgeInsetsMake(0, -addressBtn.imageView.w,0, addressBtn.imageView.w);

最終筆者是寫了一個(gè)UIImage+scale的分類解決了,
.h文件

import

@interfaceUIImage (scale)

-(UIImage*)scaleToSize:(CGSize)size;

@end

.m文件

import"UIImage+scale.h"

@implementationUIImage (scale)

-(UIImage*)scaleToSize:(CGSize)size

{

UIGraphicsBeginImageContext(size);

[selfdrawInRect:CGRectMake(0,0, size.width, size.height)];

UIImage* scaledImage =UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

returnscaledImage;

}

@end

代碼的使用:

[addressBtn setTitle:@"北京"forState:UIControlStateNormal];

UIImage* image1 = [UIImageimageNamed:@"weizhi"];

[addressBtn setImage:[image1 scaleToSize:CGSizeMake(9.5,13.0)]forState:UIControlStateNormal];
最終達(dá)成的效果為:

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容