UIButton控件比較特殊,不能通過alloc init的方式創建,和ImageView的區別是,UIButton可以點擊,ImageView不可以。
UIButton官網地址:https://developer.apple.com/reference/uikit/uibutton 點擊打開鏈接
/*
UIButtonTypeCustom = 0, // no button type 自定義
UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0), // standard system button 7.0系統標準,文字和圖片會被渲染成藍色
//7.0之後每什麼差別
UIButtonTypeDetailDisclosure,藍色小箭頭按鈕,7.0後藍色按鈕
UIButtonTypeInfoLight,亮色感嘆號,7.0後藍色感嘆號
UIButtonTypeInfoDark,暗色感嘆號,7.0之後藍色感嘆號
UIButtonTypeContactAdd,藍色十字加號按鈕
*/
//UIButton的初始化,不能alloc init的方式
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
//frame的設置
btn.frame = CGRectMake(50, 50, 200, 80);
//背景顏色的設置
btn.backgroundColor = [UIColor redColor];
// /*
// UIControlStateNormal = 0, //正常狀態
// UIControlStateHighlighted = 1 << 0, // used when UIControl isHighlighted is set 按下狀態
// UIControlStateDisabled = 1 << 1, //不能點擊狀態
// UIControlStateSelected = 1 << 2, // flag usable by app (see below) 選擇狀態
// UIControlStateFocused NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 3, // Applicable only when the screen supports focus
// UIControlStateApplication = 0x00FF0000, // additional flags available for application use 應用程序標誌時
// UIControlStateReserved = 0xFF000000 // flags reserved for internal framework use 爲內部框架預留
// */
//正常狀態下的文字
[btn setTitle:@"正常狀態" forState:UIControlStateNormal];
//正常狀態下的圖片
[btn setImage:[UIImage imageNamed:@"123"] forState:UIControlStateNormal];
//高亮狀態下的文字
[btn setTitle:@"按下狀態" forState:UIControlStateHighlighted];
//正常狀態下的文字
[btn setImage:[UIImage imageNamed:@"456"] forState:UIControlStateHighlighted];
//文字距離上面10px的距離,分別是上,左,下,右的距離
//UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
btn.titleEdgeInsets = UIEdgeInsetsMake(10, 0, 0, 0);
//圖片距離上面10px的距離,分別是上,左,下,右的距離
btn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 10, 0);
//內容距離上面10px的距離,分別是上,左,下,右的距離
//內容區域包含圖片和文字
btn.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 10, 0);
//手指按下的時候
[btn addTarget:self action:@selector(clickDown:) forControlEvents:UIControlEventTouchDown];
//手指擡起的時候
[btn addTarget:self action:@selector(clickUp:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];