ios學習總結(2) -- UIButton的使用

原文地址

UIButton的類是一個UIControl子類,它實現了在觸摸屏上的按鈕。觸摸一個按鈕攔截事件和動作消息發送到目標對象時,它的挖掘。設定的目標和行動方法都繼承自UIControl。這個類提供了方法來設置標題,圖像,按鈕等外觀屬性。通過使用set方法,你可以指定一個不同的外觀爲每個按鈕狀態。

UIButton的定義:

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

 其中UIButtonType的定義如下:

  typedef NS_ENUM(NSInteger, UIButtonType) {
    UIButtonTypeCustom = 0,                         // 無類型(自定義類型)
    UIButtonTypeSystem NS_ENUM_AVAILABLE_IOS(7_0),  // 標準類型
    UIButtonTypeDetailDisclosure,  //藍色小箭頭按鈕
    UIButtonTypeInfoLight, //亮色感嘆號
    UIButtonTypeInfoDark, //暗色感嘆號
    UIButtonTypeContactAdd, //十字加號
    UIButtonTypeRoundedRect = UIButtonTypeSystem,   // 圓角矩形
};

 

button的屬性:

- (void)setTitle:(nullable NSString *)title forState:(UIControlState)state;                     // 設置標題,即button上顯示的文字
- (void)setTitleColor:(nullable UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // 設置標題的顏色
- (void)setTitleShadowColor:(nullable UIColor *)color forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // 設置標題陰影顏色
- (void)setImage:(nullable UIImage *)p_w_picpath forState:(UIControlState)state;                      // 設置圖片
- (void)setBackgroundImage:(nullable UIImage *)p_w_picpath forState:(UIControlState)state UI_APPEARANCE_SELECTOR; // 設置背景圖片
- (void)setAttributedTitle:(nullable NSAttributedString *)title forState:(UIControlState)state NS_AVAILABLE_IOS(6_0); // 設置屬性名稱

 

 

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

typedef NS_OPTIONS(NSUInteger, UIControlState) {
    UIControlStateNormal       = 0,                       // 正常狀態顯示
    UIControlStateHighlighted  = 1 << 0,                  // 高亮狀態顯示
    UIControlStateDisabled     = 1 << 1,                  // 禁用狀態顯示
    UIControlStateSelected     = 1 << 2,                  // 選中狀態顯示
    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
};

 

以下屬性是設置forState中的各種狀態是否啓用:

@property(nonatomic)          BOOL         reversesTitleShadowWhenHighlighted; // default is NO. if YES, shadow reverses to shift between engrave and emboss appearance
@property(nonatomic)          BOOL         adjustsImageWhenHighlighted;    // default is YES. if YES, p_w_picpath is drawn darker when highlighted(pressed)
@property(nonatomic)          BOOL         adjustsImageWhenDisabled;       // default is YES. if YES, p_w_picpath is drawn lighter when disabled
@property(nonatomic)          BOOL         showsTouchWhenHighlighted __TVOS_PROHIBITED;      // default is NO. if YES, show a simple feedback

給button添加事件:

[button1 addTarget:self action:@selector(callback:) forControlEvents:UIControlEventTouchUpInside];
- (IBAction)callback:(id)sender;{
...
}

以下是button的事件:

typedef NS_OPTIONS(NSUInteger, UIControlEvents) {
    UIControlEventTouchDown                                         = 1 <<  0,      // on all touch downs
    UIControlEventTouchDownRepeat                                   = 1 <<  1,      // on multiple touchdowns (tap count > 1)
    UIControlEventTouchDragInside                                   = 1 <<  2,
    UIControlEventTouchDragOutside                                  = 1 <<  3,
    UIControlEventTouchDragEnter                                    = 1 <<  4,
    UIControlEventTouchDragExit                                     = 1 <<  5,
    UIControlEventTouchUpInside                                     = 1 <<  6,
    UIControlEventTouchUpOutside                                    = 1 <<  7,
    UIControlEventTouchCancel                                       = 1 <<  8,
    UIControlEventValueChanged                                      = 1 << 12,     // sliders, etc.
    UIControlEventPrimaryActionTriggered NS_ENUM_AVAILABLE_IOS(9_0) = 1 << 13,     // semantic action: for buttons, etc.
    UIControlEventEditingDidBegin                                   = 1 << 16,     // UITextField
    UIControlEventEditingChanged                                    = 1 << 17,
    UIControlEventEditingDidEnd                                     = 1 << 18,
    UIControlEventEditingDidEndOnExit                               = 1 << 19,     // 'return key' ending editing
    UIControlEventAllTouchEvents                                    = 0x00000FFF,  // for touch events
    UIControlEventAllEditingEvents                                  = 0x000F0000,  // for UITextField
    UIControlEventApplicationReserved                               = 0x0F000000,  // range available for application use
    UIControlEventSystemReserved                                    = 0xF0000000,  // range reserved for internal framework use
    UIControlEventAllEvents                                         = 0xFFFFFFFF
};

顯示button:

[self.view addSubview: button]

 

以上就是UIButton的內容了

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