您好,登錄后才能下訂單哦!
UIButton按鈕控件和UITextField輸入框控件,是UI開發中比較常用的兩個控件
和UILabel、UIImageView、UISwitch相比,用法相對比較豐富
UIButton的四個狀態
UIButton有四個狀態:
//正常狀態 UIControlStateNormal //高亮狀態:當按鈕被按下時的狀態 UIControlStateHighlighted //選中狀態:通過UIButton對象的selected屬性進行切換 UIControlStateSelected //禁用狀態:通過UIButton對象的enable屬性進行切換,不能接受用戶的點擊 UIControlStateDisabled
如果設置了正常狀態下的文字、圖片的數據,其余三個狀態也是用這些數據
高亮狀態,顏色加深;禁用狀態,顏色變灰
也可以分別設置每一個狀態下的文字、圖片等數據
UIButton的子視圖
UIButton內部包含三個子視圖:
一個UILabel文字標簽(藍色)
一個UIImageView圖片控件(默認在文字左邊)(橘紅色)
一個UIImageView背景圖片空間(在文字和圖片空間的下面)(***)
其中后兩個子視圖,可以不顯示數據
設置數據必須指明是哪個狀態下:
- (void)setTitle:(NSString *)title forState:(UIControlState)state - (NSString *)titleForState:(UIControlState)state - (void)setImage:(UIImage *)p_w_picpath forState:(UIControlState)state - (UIImage *)p_w_picpathForState:(UIControlState)state - (void)setBackgroundImage:(UIImage *)p_w_picpath forState:(UIControlState)state - (UIImage *)backgroundImageForState:(UIControlState)state
UIButton子類
按鈕是界面中最常出現的元素,為了定制各種想要的按鈕效果,經常實現UIButton子類
可以實現以下效果:
1)UIButton屬性的設置封裝到構造方法中
2)去掉某些自帶效果
比如去掉高亮狀態時的陰影效果,重寫highlighted屬性的setter方法:什么也不做
3)修改該文字標簽和圖片的相對位置
重寫以下方法:
- (CGRect)contentRectForBounds:(CGRect)bounds - (CGRect)p_w_picpathRectForContentRect:(CGRect)contentRect - (CGRect)titleRectForContentRect:(CGRect)contentRect
UITextField上的各種子視圖
右側清除按鈕:
@property(nonatomic) UITextFieldViewMode clearButtonMode typedef enum { UITextFieldViewModeNever, UITextFieldViewModeWhileEditing, UITextFieldViewModeUnlessEditing, UITextFieldViewModeAlways } UITextFieldViewMode;
左右側視圖,通常放置按鈕
@property(nonatomic, strong) UIView *leftView @property(nonatomic, strong) UIView *rightView
左右側視圖顯示模式
@property(nonatomic) UITextFieldViewMode leftViewMode @property(nonatomic) UITextFieldViewMode rightViewMode
UITextField的自定義鍵盤
通過inputView修改鍵盤
@property(readwrite, strong) UIView *inputView
通常是設置為各種選擇視圖,如:
textField.inputView = [[UIDatePicker alloc] init];
通過inputAccessoryView設置鍵盤上的工具欄
@property(readwrite, strong) UIView *inputAccessoryView
工具欄上一般放置各種按鈕,如完成、下一個、上一個等
UIToolBar * toolBar = [UIToolBar alloc] init]; textField.inputAccessoryView = toolBar; toolBar.frame = CGRectMake(0, 0, 375, 20); //toolBar添加按鈕 //...
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。