UIButton是iOS中比較常用的控件胳挎,幾乎處處可見(jiàn),本文總結(jié)了一些我開(kāi)發(fā)過(guò)程中用到的一些UIButton的功能溺森,當(dāng)然慕爬,按鈕初始化,設(shè)置圖片文字這些基本功能就不說(shuō)了屏积。
1医窿、設(shè)置按鈕圖片、文字位置
開(kāi)發(fā)過(guò)程中我們經(jīng)常會(huì)遇到各種各樣的button炊林,原生button默認(rèn)是圖片在左姥卢,文字在右,并且不管設(shè)置了圖片還是文字或者兩個(gè)都設(shè)置渣聚,他們都是默認(rèn)居中独榴,如button1,但有時(shí)有會(huì)有button2,btn3這種樣式的,當(dāng)我還是個(gè)小白的時(shí)候一般這種樣式我都是自定義button(捂臉奕枝,好慚愧)棺榔,后來(lái)發(fā)現(xiàn)使用imageEdgeInsets、titleEdgeInsets就能夠修改圖片和文字的位置:
UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) {
UIEdgeInsets insets = {top, left, bottom, right};
return insets;
}
類似這樣寫(xiě)就可以實(shí)現(xiàn)btn3的效果
button3.imageEdgeInsets = UIEdgeInsetsMake(0, 60, 0, 0);
button3.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 40);
2隘道、讓按鈕文字居左或居右
button3.titleLabel.textAlignment = NSTextAlignmentLeft;
這行代碼是沒(méi)有效果的症歇,無(wú)法改變按鈕文字的對(duì)齊方式,使用下面代碼修改按鈕文字對(duì)齊方式:
button3.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
button3.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight;
3郎笆、按鈕加載網(wǎng)絡(luò)圖片
使用SDWebImage來(lái)異步加載網(wǎng)絡(luò)圖片(以前只知道imageview用它加載網(wǎng)絡(luò)圖片,不知道按鈕也可以忘晤,記錄一下宛蚓,簡(jiǎn)直太小白了):
[button3 sd_setImageWithURL:[NSURL URLWithString:url] forState:0];
[button3 sd_setBackgroundImageWithURL:[NSURL URLWithString:url] forState:0];
盡量不要用下面這種方式加載網(wǎng)絡(luò)圖片,同步加載容易卡線程:
[button3 setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]] forState:0];
4德频、按鈕文字設(shè)置富文本
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString: button3.currentTitle];
NSRange range = [button3.currentTitle rangeOfString:@"關(guān)注"];
NSDictionary *dic = @{NSForegroundColorAttributeName:UIColorFromRGB(0x818080),NSFontAttributeName:kFont(12)};
[str addAttributes:dic range:range];
[button3 setAttributedTitle:str forState:0];//0是normal狀態(tài)
5苍息、按鈕文字傾斜
//有時(shí)候某些需求需要設(shè)置文字為斜體加粗
//百度搜到這個(gè),設(shè)置后斜體貌似不明顯壹置,反正我沒(méi)看出來(lái)
button3.titleLabel.font = [UIFont fontWithName:@"TrebuchetMS-Bold" size:20];
//然后又試了這個(gè),這個(gè)好使
CGAffineTransform matrix = CGAffineTransformMake(1, 0, tanf(-15 * (CGFloat)M_PI / 180), 1, 0, 0);//-15向右傾斜15度 要傾斜多少度看自己喜歡啦
button3.transform = matrix;
本文記錄的功能都比較簡(jiǎn)單表谊,入門(mén)級(jí)的钞护,記性不好記錄一下方便以后查找,有錯(cuò)誤的話請(qǐng)指正爆办,以后再用到其他相關(guān)功能也會(huì)繼續(xù)更新难咕。