UIButton 是日常開發(fā)中相當常用是控件,今天來做個簡單的總結.
//這里創(chuàng)建一個圓角矩形的按鈕
UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
// 能夠定義的button類型有以下6種,
// typedef enum {
// UIButtonTypeCustom = 0, 自定義風格
// UIButtonTypeRoundedRect, 圓角矩形
// UIButtonTypeDetailDisclosure, 藍色小箭頭按鈕,主要做詳細說明用// UIButtonTypeInfoLight, 亮色感嘆號
// UIButtonTypeInfoDark, 暗色感嘆號
// UIButtonTypeContactAdd, 十字加號按鈕
//
}
UIButtonType;
//給定button在view上的位置
button1.frame = CGRectMake(20, 20, 280, 20); //button背景色
button1.backgroundColor = [UIColor clearColor];
//設置button填充圖片
//[button1 setImage:[UIImage imageNamed:@"btng.png"] forState:UIControlStateNormal];
//設置button標題 [button1 setTitle:@"點擊" forState:UIControlStateNormal];
/* forState: 這個參數的作用是定義按鈕的文字或圖片在何種狀態(tài)下才會顯現*/
//以下是幾種狀態(tài)
// enum {
// UIControlStateNormal = 0, 常規(guī)狀態(tài)顯現
// UIControlStateHighlighted = 1 << 0, 高亮狀態(tài)顯現
// UIControlStateDisabled = 1 << 1, 禁用的狀態(tài)才會顯現
// UIControlStateSelected = 1 << 2, 選中狀態(tài)
// UIControlStateApplication = 0x00FF0000, 當應用程序標志時
// UIControlStateReserved = 0xFF000000 為內部框架預留,可以不管他
};
/* * 默認情況下,當按鈕高亮的情況下膛壹,圖像的顏色會被畫深一點,如果這下面的這個屬性設置為no, * 那么可以去掉這個功能 */
button1.adjustsImageWhenHighlighted = NO;
/*跟上面的情況一樣换衬,默認情況下痰驱,當按鈕禁用的時候,圖像會被畫得深一點瞳浦,設置NO可以取消設置*/
button1.adjustsImageWhenDisabled = NO;
/* 下面的這個屬性設置為yes的狀態(tài)下担映,按鈕按下會發(fā)光*/
button1.showsTouchWhenHighlighted = YES;
/* 給button添加事件,事件有很多種叫潦,我會單獨開一篇博文介紹它們蝇完,下面這個時間的意思是 按下按鈕,并且手指離開屏幕的時候觸發(fā)這個事件矗蕊,跟web中的click事件一樣短蜕。 觸發(fā)了這個事件以后,執(zhí)行butClick:這個方法傻咖,addTarget:self 的意思是說朋魔,這個方法在本類中 也可以傳入其他類的指針*/
[button1 addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];
//顯示控件 [self.view addSubview:button1];
// 如果你想完全自定義, 那么
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
// 設置標題
[btn setTitle: @"普通狀態(tài)" forState: UIControlStateNormal];
[btn setTitle: @"選中狀態(tài)(選中時記得設為YES)" forState: UIControlStateSelectes];
// 設置圖片
[btn setImage:[UIImage imageNamed:@"未選中"] forState:(UIControlStateNormal)];
[btn setImage:[UIImage imageNamed:@"選中"] forState:(UIControlStateSelected)];
//設置字體大小
[btn setFont: [UIFont systemFontSize: 14.0]];
// 設置文字居位
//有些時候我們想讓UIButton的title居左對齊,我們設置
btn.textLabel.textAlignment = UITextAlignmentLeft
是沒有作用的卿操,我們需要設置
btn.contentHorizontalAlignment = UIControlContentHorizonAlignmentLeft;
但是問題又出來铺厨,此時文字會緊貼到做邊框,我們可以設置
btn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 0);
使文字距離做邊框保持10個像素的距離硬纤。
設置UIButton上字體的顏色設置UIButton上字體的顏色解滓,不是用:
[btn.titleLabel setTextColor:[UIColorblackColor]];
btn.titleLabel.textColor=[UIColor redColor];
而是用:
[btn setTitleColor:[UIColor blackColor]forState:UIControlStateNormal];
//自定義的框顏色
btn.layer.borderColor = [UIColor grayColor].CGColor;
//自定義框的寬度
btn.layer.borderWidth = 1;
//自定義圓角, 當值為寬一半是為半圓
btn.layer.cornerRadius = 5;
// 自定義陰影(其他視圖也可以使用此屬性)
btn.layer.shadowColor = [UIColor yellowColor].CGColor;//shadowColor陰影顏色
btn.layer.shadowOffset = CGSizeMake(0,0);//shadowOffset陰影偏移,默認(0, -3),這個跟shadowRadius配合使用
btn.layer.shadowOpacity = 1;//陰影透明度筝家,默認0
_imageView1.layer.shadowRadius = 3;//陰影半徑洼裤,默認3
Button上的圖文混排是不常用的,不過并不難
// 在UIButton中有三個對EdgeInsets的設置:ContentEdgeInsets、titleEdgeInsets溪王、imageEdgeInsets
[button setImage:[UIImage imageNamed:@"圖片"] forState:UIControlStateNormal];//給button加image
button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);
//設置image在button上的位置(上top腮鞍,左left,下bottom莹菱,右right)這里可以寫負值移国,對上寫-5,那么image就象上移動5個像素
[button setTitle:@"文字" forState:UIControlStateNormal];//設置button的title
button.titleLabel.font = [UIFont systemFontOfSize:16];//title字體大小
button.titleLabel.textAlignment = NSTextAlignmentCenter;
//設置title的字體居中
[button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
//設置title在一般情況下為白色字體
[button setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];
//設置title在button被選中情況下為灰色字體
button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//設置title在button上的位置(上top道伟,左left迹缀,下bottom,右right)
// [button setContentEdgeInsets:UIEdgeInsetsMake(70, 0, 0, 0)];//
// button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//設置button的內容橫向居中蜜徽。祝懂。設置content是title和image一起變化
// 點擊Button方法
[button addTarget: self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside];