iOS開發UIbutton常用屬性方法,ios開發uibutton
對UIbutton的簡單使用(基本上足夠了),話不多說,直接看
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
/*
UIButtonTypeCustom = 0, //自訂風格
UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0), // 標準的系統按鈕
UIButtonTypeDetailDisclosure, 藍色小箭頭按鈕,主要做詳細說明用
UIButtonTypeInfoLight, 藍色驚嘆號
UIButtonTypeInfoDark, 暗色驚嘆號
UIButtonTypeContactAdd, 十字加字按鈕
UIButtonTypeRoundedRect = UIButtonTypeSystem, // Deprecated, use UIButtonTypeSystem instead
*/
myButton.frame = CGRectMake(100, 100, 100, 50);//button在view上面的位置
[myButton setBackgroundColor:[UIColor brownColor]];//背景色
[self.view addSubview:myButton];
[myButton setImage:[UIImage imageNamed:@"buttonimage.gif"] forState:UIControlStateNormal];
// [myButton setBackgroundImage:[UIImage imageNamed:@"buttonimage.gif"] forState:UIControlStateNormal];
[myButton setTitle:@"不易" forState:UIControlStateNormal];
// 設定圖片的內邊距
/*
UIControlStateNormal = 0, 常規狀態顯現
UIControlStateHighlighted = 1 << 0, 高亮狀態顯現
UIControlStateDisabled = 1 << 1, 禁用的狀態才會顯現
UIControlStateSelected = 1 << 2, 選中狀態
UIControlStateApplication = 0x00FF0000, 當應用程式標誌時
UIControlStateReserved = 0xFF000000 為內部架構預留,可以不管他
*/
myButton.imageEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0);
// 設定文本的內邊距
myButton.titleEdgeInsets = UIEdgeInsetsMake(0, 50, 0, 0);
/**
保證button的imageView在旋轉之後保持原有的形狀
UIViewContentModeScaleToFill, 展開填充
UIViewContentModeScaleAspectFit, 自適應
UIViewContentModeScaleAspectFill, 自適應填充
UIViewContentModeCenter, 保持原有的尺寸
*/
myButton.imageView.contentMode =UIViewContentModeCenter;
/*
* 預設情況下,當按鈕高亮的情況下,映像的顏色會被畫深一點,如果這下面的這個屬性設定為no,
* 那麼可以去掉這個功能
*/
myButton.adjustsImageWhenHighlighted = NO;
/*跟上面的情況一樣,預設情況下,當按鈕禁用的時候,映像會被畫得深一點,設定NO可以取消設定*/
myButton.adjustsImageWhenDisabled = NO;
/* 下面的這個屬性設定為yes的狀態下,按鈕按下會發光*/
myButton.showsTouchWhenHighlighted = YES;
/* 給button添加事件,事件有很多種,我會單獨開一篇博文介紹它們,下面這個時間的意思是
按下按鈕,並且手指離開螢幕的時候觸發這個事件,跟web中的click事件一樣。
觸發了這個事件以後,執行butClick:這個方法,addTarget:self 的意思是說,這個方法在本類中
也可以傳入其他類的指標*/
[myButton addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];
//取消按鈕已經添加的所有事件:(這個比較重要,若添加了兩個事件 兩個事件都會被觸發)
[myButton removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];
/*
{
UIControlEventTouchDown
單點觸摸按下事件:使用者點觸螢幕,或者又有新手指落下的時候。
UIControlEventTouchDownRepeat
多點觸摸按下事件,點觸計數大於1:使用者按下第二、三、或第四根手指的時候。
UIControlEventTouchDragInside
當一次觸摸在控制項視窗內拖動時。
UIControlEventTouchDragOutside
當一次觸摸在控制項視窗之外拖動時。
UIControlEventTouchDragEnter
當一次觸摸從控制項視窗之外拖動到內部時。
UIControlEventTouchDragExit
當一次觸摸從控制項視窗內部拖動到外部時。
UIControlEventTouchUpInside
所有在控制項之內觸摸抬起事件。
UIControlEventTouchUpOutside
所有在控制項之外觸摸抬起事件(點觸必須開始與控制項內部才會發送通知)。
UIControlEventTouchCancel
所有觸摸取消事件,即一次觸摸因為放上了太多手指而被取消,或者被上鎖或者撥打電話打斷。
UIControlEventTouchChanged
當控制項的值發生改變時,發送通知。用於滑塊、分段控制項、以及其他取值的控制項。你可以配置滑塊控制項何時發送通知,在滑塊被放下時發送,或者在被拖動時發送。
UIControlEventEditingDidBegin
當文本控制項中開始編輯時發送通知。
UIControlEventEditingChanged
當文本控制項中的文本被改變時發送通知。
UIControlEventEditingDidEnd
當文本控制項中編輯結束時發送通知。
UIControlEventEditingDidOnExit
當文本控制項內通過按下斷行符號鍵(或等價行為)結束編輯時,發送通知。
UIControlEventAlltouchEvents
通知所有觸摸事件。
UIControlEventAllEditingEvents
通知所有關於文本編輯的事件。
UIControlEventAllEvents
通知所有事件。
}
*/
// clipsToBounds = YES; 超出父view的邊界的部分將會被剪下掉
myButton.imageView.clipsToBounds =NO;
//擷取按鈕圖片和標題
UIImage *image = [myButton backgroundImageForState:
UIControlStateHighlighted];//擷取高亮狀態下的圖片;
UIImage *img=myButton.currentImage;//擷取當前按鈕的圖片;
NSString *str =[myButton titleForState:UIControlStateNormal];//擷取正常狀態下的按鈕標題
//取消失效狀態的按鈕映像調整
myButton.adjustsImageWhenDisabled =NO;
// 取消高亮狀態的按鈕映像調整
myButton.adjustsImageWhenHighlighted =NO;
//=================按鈕標題自適應大小
//*********1、確定Label或Button的字型大小,使其寬度自適應
UILabel *contentLabel = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 120, 30)];
contentLabel.font = [UIFont systemFontOfSize:15];//-------->定義Font的大小
contentLabel.backgroundColor = [UIColor redColor];
contentLabel.text = @"我已知曉,且已閱讀並同意以上條款";
[contentLabel sizeToFit];//-------->字型大小固定,寬度自適應
[self.view addSubview:contentLabel];
//************2、確定Label或Button的寬度,使字型大小自適應
//無需自己設定字型大小
UILabel *contentLabel1 = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 120, 30)];
contentLabel1.backgroundColor = [UIColor redColor];
contentLabel1.text = @"我已知曉,且已閱讀並同意以上條款";
contentLabel1.adjustsFontSizeToFitWidth = YES;//寬度固定,字型大小自適應
[self.view addSubview:contentLabel1];
//***********如果是Button的話,和上面一樣,只有一點小小的區別:
[myButton.titleLabel sizeToFit];
myButton.titleLabel.adjustsFontSizeToFitWidth = YES;
//設定邊框顏色和圓角
[myButton.layer setMasksToBounds:YES];
[myButton.layer setCornerRadius:10.0]; //設定矩形四個圓角半徑
//邊框寬度
[myButton.layer setBorderWidth:1.0];
//設定邊框顏色有兩種方法:第一種如下:
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGColorRef colorref = CGColorCreate(colorSpace,(CGFloat[]){ 0, 0, 0, 1 });
[myButton.layer setBorderColor:colorref];//邊框顏色
//第二種方法如下:
//_testButton.layer.borderColor=[UIColor grayColor].CGColor;
方便自己使用,也希望能方便他人