UIButton的一些屬性和方法

1.創建UIButton對象(使用便利構造器方法)

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];

2.配置屬性

注意:一定要配置frame

    btn.frame = CGRectMake(30, 200, 70, 30);
    btn.backgroundColor = [UIColor redColor];
    
(1)添加文字
//    [_button1 setTitle:@"登陸" forState:UIControlStateNormal];
//    [_button1 setTitle:@"denglu" forState:UIControlStateHighlighted];
//    [_button1 setTitle:@"選中" forState:UIControlStateSelected];
(2)添加點擊事件
    [btn addTarget:self action:@selector(clickButton1) forControlEvents:UIControlEventTouchUpInside];
    //移除點擊事件
    //[_button1 removeTarget:self action:@selector(clickButton1) forControlEvents:UIControlEventTouchUpInside];
    
    //************外觀設置************
     /*
    //(3)獲取指定狀態下的標題
    NSString *title = [_button1 titleForState:UIControlStateNormal];
    NSLog(@"普通狀態的標題: %@",title);
    NSString *title1 = [_button1 titleForState:UIControlStateHighlighted];
    NSLog(@"高亮狀態下的標題%@",title1);
    //(4)設置某個狀態下的titlecolor
    [_button1 setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    //(5)設置title字體大小
    _button1.titleLabel.font = [UIFont systemFontOfSize:20];
    //(6)設置title指定狀態下的陰影顏色
    [_button1 setTitleShadowColor:[UIColor blueColor] forState:UIControlStateNormal];
    _button1.titleLabel.shadowOffset = CGSizeMake(3, 3);
    //(7)獲取顏色值
    UIColor *naomalColor = [_button1 titleColorForState:UIControlStateNormal];
    NSLog(@"%@",naomalColor);
     */
    //(8)設置圖片在某個狀態下
    //[_button1 setImage:[UIImage imageNamed:@")19HYJL{YKYCB}4OL8ADFMM.png"]  forState:UIControlStateNormal];
    //UIImage *normalImage = [_button1 imageForState:UIControlStateNormal];
    //NSLog(@"%@",normalImage);
    [btn setBackgroundImage:[UIImage imageNamed:@"]W4FQLLLVU69EHM8X0@$U$O"] forState:UIControlStateNormal];
(9)當按鈕高亮或者禁用,UIButton 類可以調整自己的外觀,下面幾個屬性可以讓你按照需要對按鈕的外觀進行微調:
默認情況下,在按鈕被禁用時,圖像會被畫的顏色深一些。要禁用此功能,將這個屬性設置爲NO:
    btn1.adjustsImageWhenHighlighted = NO;
默認情況下,按鈕在被禁用時,圖像會被畫的顏色淡一些。要禁用此功能,請將這個屬性設置爲NO:
    btn1.adjustsImageWhenDisabled = NO;
這個屬性設置爲YES,可令按鈕在按下時發光。這可以用於信息按鈕或者有些重要的按鈕:

btn1.showsTouchWhenHighlighted = YES;

3.有些情況會是button的點擊事件失效

(1).button.hidden = true;

(2).button.alpha = 0;

(3).父控件或者自身的userInteractionEnabled屬性爲false(特別有可能發生於兩層view疊加中)

補充一下,以下內容轉載於:

UIbutton 詳解 FireFrog http://1.firefrog.sinaapp.com/?p=570

可以通過子類化按鈕來定製屬於你自己的按鈕類。

在子類化的時候你可以重載下面這些方法,這些方法返回CGRect,控制按鈕每一組成部分的邊界。

注意:不要直接調用這些方法, 這些方法是你寫給系統調用的。

backgroundRectForBounds   //指定背景邊界
contentRectForBounds // 指定內容邊界
titleRectForContentRect    // 指定文字標題邊界
imageRectForContentRect     //指定按鈕圖像邊界

例:

- (CGRect)imageRectForContentRect:(CGRect)bounds{

     return CGRectMake(0.0, 0.0, 44, 44);
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章