1>眾所周知,在給系統(tǒng)的Button設(shè)置文字和image的時候(非背景顏色),系統(tǒng)默認(rèn)是左邊圖片,右邊文字,可現(xiàn)在需求是,左邊是文字右邊是圖片.那么我們?nèi)绾螌崿F(xiàn)這一效果呢?
button有一個我們很少用的兩個屬性,分別是imageEdgeInsets和titleEdgeInsets,這兩個屬性就是分別設(shè)置圖片和文字的距上下左右的距離,我們可以這樣設(shè)置
addressBtn.imageEdgeInsets=UIEdgeInsetsMake(0, addressBtn.titleLabel.w,0, -addressBtn.titleLabel.w);
addressBtn.titleEdgeInsets=UIEdgeInsetsMake(0, -addressBtn.imageView.w,0, addressBtn.imageView.w);
最終筆者是寫了一個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];
最終達成的效果為: