學習ios控件之UIButton

UIButton控件比較特殊,不能通過alloc init的方式創建,和ImageView的區別是,UIButton可以點擊,ImageView不可以。

UIButton官網地址:https://developer.apple.com/reference/uikit/uibutton   點擊打開鏈接

/*
    UIButtonTypeCustom = 0,                         // no button type    自定義
    UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0),  // standard system button 7.0系統標準,文字和圖片會被渲染成藍色
    
    //7.0之後每什麼差別
    UIButtonTypeDetailDisclosure,藍色小箭頭按鈕,7.0後藍色按鈕
    UIButtonTypeInfoLight,亮色感嘆號,7.0後藍色感嘆號
    UIButtonTypeInfoDark,暗色感嘆號,7.0之後藍色感嘆號
    UIButtonTypeContactAdd,藍色十字加號按鈕
     */
    //UIButton的初始化,不能alloc init的方式
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
    
    //frame的設置
    btn.frame = CGRectMake(50, 50, 200, 80);
    
    //背景顏色的設置
    btn.backgroundColor = [UIColor redColor];
//    /*
//     UIControlStateNormal       = 0,                       //正常狀態
//     UIControlStateHighlighted  = 1 << 0,                  // used when UIControl isHighlighted is set 按下狀態
//     UIControlStateDisabled     = 1 << 1,                  //不能點擊狀態
//     UIControlStateSelected     = 1 << 2,                  // flag usable by app (see below)  選擇狀態
//     UIControlStateFocused NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 3, // Applicable only when the screen supports focus
//     UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use 應用程序標誌時
//     UIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use 爲內部框架預留
//     */
    //正常狀態下的文字
    [btn setTitle:@"正常狀態" forState:UIControlStateNormal];
    
    //正常狀態下的圖片
    [btn setImage:[UIImage imageNamed:@"123"] forState:UIControlStateNormal];

    //高亮狀態下的文字
    [btn setTitle:@"按下狀態" forState:UIControlStateHighlighted];
    
    //正常狀態下的文字
    [btn setImage:[UIImage imageNamed:@"456"] forState:UIControlStateHighlighted];
    
    //文字距離上面10px的距離,分別是上,左,下,右的距離
    //UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
    btn.titleEdgeInsets = UIEdgeInsetsMake(10, 0, 0, 0);
    
    //圖片距離上面10px的距離,分別是上,左,下,右的距離
    btn.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 10, 0);
    
    //內容距離上面10px的距離,分別是上,左,下,右的距離
    //內容區域包含圖片和文字
    btn.contentEdgeInsets = UIEdgeInsetsMake(0, 0, 10, 0);
    
    //手指按下的時候
    [btn addTarget:self action:@selector(clickDown:) forControlEvents:UIControlEventTouchDown];
    
    //手指擡起的時候
    [btn addTarget:self action:@selector(clickUp:) forControlEvents:UIControlEventTouchUpInside];
    
    [self.view addSubview:btn];


發佈了29 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章