IOS UIButton使用詳解


第一、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; // 標題間距


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM