IOS UIButton使用詳解

bx52 9年前發布 | 3K 次閱讀 Objective-C IOS

第一、UIButton的定義

 

    UIButton *button=[[UIButton buttonWithType:(UIButtonType);

能夠定義的button類型有以下6種,
 typedef enum {
 UIButtonTypeCustom = 0, 自定義風格

 UIButtonTypeRoundedRect, 圓角矩形 

 UIButtonTypeDetailDisclosure, 藍色小箭頭按鈕,主要做詳細說明用

 UIButtonTypeInfoLight, 亮色感嘆號
 UIButtonTypeInfoDark, 暗色感嘆號
UIButtonTypeContactAdd, 十字加號按鈕

 } UIButtonType;

第二、設置frame

button1.frame = CGRectMake(20, 20, 280, 40);

[button setFrame:CGRectMake(20,20,50,50)];

第三、button背景色

button1.backgroundColor = [UIColor clearColor];

[button setBackgroundColor:[UIColor blueColor]];

第四、state狀態

 forState: 這個參數的作用是定義按鈕的文字或圖片在何種狀態下才會顯現

enum {
UIControlStateNormal = 0, 常規狀態顯現 
 UIControlStateHighlighted = 1 << 0, 高亮狀態顯現 
 UIControlStateDisabled = 1 << 1, 禁用的狀態才會顯現
 UIControlStateSelected = 1 << 2, 選中狀態 
 UIControlStateApplication = 0x00FF0000, 當應用程序標志時 

 UIControlStateReserved = 0xFF000000 為內部框架預留,可以不管他 
};

 

@property(nonatomic,getter=isEnabled)BOOL enabled;                                 // default is YES. if NO, ignores touch events and subclasses may draw differently

@property(nonatomic,getter=isSelected)BOOL selected;                               // default is NO may be used by some subclasses or by application

@property(nonatomic,getter=isHighlighted)BOOL highlighted;                          

第五 、設置button填充圖片和背景圖片

 

    [buttonsetImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];

    [buttonsetBackgroundImage:[UIImageimageNamed:@"checkmarkControllerIcon"]forState:UIControlStateNormal];

第六、設置button標題和標題顏色

[button1 setTitle:@"點擊" forState:UIControlStateNormal];

 

  [buttonsetTitleColor:[UIColorredColor]forState:UIControlStateNormal];

第七、設置按鈕按下會發光

    button.showsTouchWhenHighlighted=NO;

 

第八、添加或刪除事件處理

[button1 addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside];

[btn removeTarget:nil action:nil forControlEvents:UIControlEventTouchUpInside];

第九、 設置按鈕內部圖片間距和標題間距

 UIEdgeInsets insets; // 設置按鈕內部圖片間距
 insets.top = insets.bottom = insets.right = insets.left = 10;
 bt.contentEdgeInsets = insets;
 bt.titleEdgeInsets = insets; // 標題間距

 本文由用戶 bx52 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!