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的內容了