1.創建UIButton對象(使用便利構造器方法)
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];2.配置屬性
注意:一定要配置frame
btn.frame = CGRectMake(30, 200, 70, 30);btn.backgroundColor = [UIColor redColor];
(1)添加文字
// [_button1 setTitle:@"登陸" forState:UIControlStateNormal];
// [_button1 setTitle:@"denglu" forState:UIControlStateHighlighted];
// [_button1 setTitle:@"選中" forState:UIControlStateSelected];
(2)添加點擊事件
[btn addTarget:self action:@selector(clickButton1) forControlEvents:UIControlEventTouchUpInside];
//移除點擊事件
//[_button1 removeTarget:self action:@selector(clickButton1) forControlEvents:UIControlEventTouchUpInside];
//************外觀設置************
/*
//(3)獲取指定狀態下的標題
NSString *title = [_button1 titleForState:UIControlStateNormal];
NSLog(@"普通狀態的標題: %@",title);
NSString *title1 = [_button1 titleForState:UIControlStateHighlighted];
NSLog(@"高亮狀態下的標題%@",title1);
//(4)設置某個狀態下的titlecolor
[_button1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
//(5)設置title字體大小
_button1.titleLabel.font = [UIFont systemFontOfSize:20];
//(6)設置title指定狀態下的陰影顏色
[_button1 setTitleShadowColor:[UIColor blueColor] forState:UIControlStateNormal];
_button1.titleLabel.shadowOffset = CGSizeMake(3, 3);
//(7)獲取顏色值
UIColor *naomalColor = [_button1 titleColorForState:UIControlStateNormal];
NSLog(@"%@",naomalColor);
*/
//(8)設置圖片在某個狀態下
//[_button1 setImage:[UIImage imageNamed:@")19HYJL{YKYCB}4OL8ADFMM.png"] forState:UIControlStateNormal];
//UIImage *normalImage = [_button1 imageForState:UIControlStateNormal];
//NSLog(@"%@",normalImage);
[btn setBackgroundImage:[UIImage imageNamed:@"]W4FQLLLVU69EHM8X0@$U$O"] forState:UIControlStateNormal];
(9)當按鈕高亮或者禁用,UIButton 類可以調整自己的外觀,下面幾個屬性可以讓你按照需要對按鈕的外觀進行微調:
默認情況下,在按鈕被禁用時,圖像會被畫的顏色深一些。要禁用此功能,將這個屬性設置爲NO:
btn1.adjustsImageWhenHighlighted = NO;
默認情況下,按鈕在被禁用時,圖像會被畫的顏色淡一些。要禁用此功能,請將這個屬性設置爲NO:
btn1.adjustsImageWhenDisabled = NO;
這個屬性設置爲YES,可令按鈕在按下時發光。這可以用於信息按鈕或者有些重要的按鈕:
btn1.showsTouchWhenHighlighted = YES;
3.有些情況會是button的點擊事件失效
(1).button.hidden = true;
(2).button.alpha = 0;
(3).父控件或者自身的userInteractionEnabled屬性爲false(特別有可能發生於兩層view疊加中)
補充一下,以下內容轉載於:
UIbutton 詳解 FireFrog http://1.firefrog.sinaapp.com/?p=570
可以通過子類化按鈕來定製屬於你自己的按鈕類。
在子類化的時候你可以重載下面這些方法,這些方法返回CGRect,控制按鈕每一組成部分的邊界。
注意:不要直接調用這些方法, 這些方法是你寫給系統調用的。
例:
- (CGRect)imageRectForContentRect:(CGRect)bounds{
}