##1、UIButton屬性 ###1.一、UIButton狀態ios
enum { UIControlStateNormal = 0, // 常規狀態顯現 UIControlStateHighlighted = 1 << 0, // 高亮狀態顯現 UIControlStateDisabled = 1 << 1, // 禁用的狀態纔會顯現 UIControlStateSelected = 1 << 2, // 選中狀態 UIControlStateApplication = 0x00FF0000, // 當應用程序標誌時 UIControlStateReserved = 0xFF000000 //爲內部框架預留,能夠無論他 };
###1.二、Uibutton類型app
typedef enum { UIButtonTypeCustom = 0, // 自定義風格 UIButtonTypeRoundedRect, // 圓角矩形 UIButtonTypeDetailDisclosure, // 藍色小箭頭按鈕,主要作詳細說明用 UIButtonTypeInfoLight, // 亮色感嘆號 UIButtonTypeInfoDark, // 暗色感嘆號 UIButtonTypeContactAdd // 十字加號按鈕 } UIButtonType;
###1.三、文字、圖標等框架
// 給按鈕設置文字時,蘋果文檔說明,不能使用label對象設置文字的顏色或者陰影顏色,相反必須使用setTitleColor:forState: and setTitleShadowColor:forState:這兩個方法才能修改 // 設置對應狀態的標題內容default is nil. title is assumed to be single line - (void)setTitle:(NSString *)title forState:(UIControlState)state; // 設置對應狀態的標題顏色 - (void)setTitleColor:(UIColor *)color forState:(UIControlState)state; // 設置對應狀態的標題陰影顏色 - (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state; // 設置對應狀態的按鈕的圖片 - (void)setImage:(UIImage *)image forState:(UIControlState)state; // 設置對應狀態的按鈕背景圖片 - (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;
###1.四、adjustsImageWhenDisabledide
當按鈕禁用的狀況下,圖像的顏色會被畫深一點,默認爲YES。字體
###1.五、adjustsImageWhenHighlightedcode
當按鈕高亮的狀況下,圖像的顏色會被畫深一點,默認爲YES。orm
###1.六、showsTouchWhenHighlightedhtm
button.showsTouchWhenHighlighted=YES;點擊時的閃光效果會被前景圖片遮住中間部分;也就是設置
按鈕按下會發光
。對象
###1.七、contentEdgeInsets
設置按鈕的內部內容(包含按鈕圖片和標題)離按鈕邊緣上下左右的距離。
UIEdgeInsets insets; // 設置按鈕內部圖片間距 insets.top = insets.bottom = insets.right = insets.left = 10; bt.contentEdgeInsets = insets; bt.titleEdgeInsets = insets; // 標題間距
###1.八、文字顯示位置、字體的大小、字體顏色
btn.frame = CGRectMake(x, y, width, height); [btn setTitle: @"search" forState: UIControlStateNormal];
設置按鈕上的自體的大小
[btn setFont: [UIFont systemFontSize: 14.0]]; //這種能夠用來設置字體的大小,可是可能會在未來的SDK版本中去除改方法
應該使用
btn.titleLabel.font = [UIFont systemFontOfSize: 14.0]; [btn seBackgroundColor: [UIColor blueColor]];
最後將按鈕加入到指定視圖superView
[superView addSubview: btn];
初始化button
tvnamelabel=[[UIButton alloc]initWithFrame:CGRectMake(5,5,200,40)];
這樣初始化的button,文字默認顏色是白色的,全部若是背景也是白色的話,是看不到文字
btn.contentHorizontalAlignment=UIControlContentHorizontalAlignmentLeft ;//設置文字位置,現設爲居左,默認的是居中 [btn setTitle:@「title」forState:UIControlStateNormal];// 添加文字
有些時候咱們想讓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];
##2、事件 ###2.一、添加事件
這些事件都是基於觸摸、基於值、基於編輯。有以下事件會觸發。
// 原方法聲明 - (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; /**controlEvents事件類型: 1. UIControlEventTouchDown // 按下 2. UIControlEventTouchDownRepeat 屢次按下 3. UIControlEventTouchUpInside // 在按鈕及其必定外圍內鬆開 4. UIControlEventTouchUpOutside // 按鈕外面鬆開 */ // 調用樣例 [button1 addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];
###2.二、移除事件
// 原方法聲明 - (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; // controlEvents 參數同上 // 調用樣例 [btn removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];