溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

UIKit框架(18)UIButton和UITextField

發(fā)布時(shí)間:2020-09-18 09:58:58 來(lái)源:網(wǎng)絡(luò) 閱讀:337 作者:ymanmeng123 欄目:移動(dòng)開(kāi)發(fā)

UIButton按鈕控件和UITextField輸入框控件,是UI開(kāi)發(fā)中比較常用的兩個(gè)控件

和UILabel、UIImageView、UISwitch相比,用法相對(duì)比較豐富


  • UIButton的四個(gè)狀態(tài)

UIButton有四個(gè)狀態(tài):

//正常狀態(tài)
UIControlStateNormal 
//高亮狀態(tài):當(dāng)按鈕被按下時(shí)的狀態(tài)
UIControlStateHighlighted 
//選中狀態(tài):通過(guò)UIButton對(duì)象的selected屬性進(jìn)行切換
UIControlStateSelected 
//禁用狀態(tài):通過(guò)UIButton對(duì)象的enable屬性進(jìn)行切換,不能接受用戶的點(diǎn)擊
UIControlStateDisabled

如果設(shè)置了正常狀態(tài)下的文字、圖片的數(shù)據(jù),其余三個(gè)狀態(tài)也是用這些數(shù)據(jù)

    高亮狀態(tài),顏色加深;禁用狀態(tài),顏色變灰

也可以分別設(shè)置每一個(gè)狀態(tài)下的文字、圖片等數(shù)據(jù)


  • UIButton的子視圖

UIButton內(nèi)部包含三個(gè)子視圖:

    一個(gè)UILabel文字標(biāo)簽(藍(lán)色)

    一個(gè)UIImageView圖片控件(默認(rèn)在文字左邊)(橘紅色)

    一個(gè)UIImageView背景圖片空間(在文字和圖片空間的下面)(***)

其中后兩個(gè)子視圖,可以不顯示數(shù)據(jù)

    UIKit框架(18)UIButton和UITextField

    UIKit框架(18)UIButton和UITextField

設(shè)置數(shù)據(jù)必須指明是哪個(gè)狀態(tài)下:

- (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子類

按鈕是界面中最常出現(xiàn)的元素,為了定制各種想要的按鈕效果,經(jīng)常實(shí)現(xiàn)UIButton子類

可以實(shí)現(xiàn)以下效果:

1)UIButton屬性的設(shè)置封裝到構(gòu)造方法中

2)去掉某些自帶效果

    比如去掉高亮狀態(tài)時(shí)的陰影效果,重寫highlighted屬性的setter方法:什么也不做

3)修改該文字標(biāo)簽和圖片的相對(duì)位置

    重寫以下方法:

- (CGRect)contentRectForBounds:(CGRect)bounds
- (CGRect)p_w_picpathRectForContentRect:(CGRect)contentRect
- (CGRect)titleRectForContentRect:(CGRect)contentRect


  • UITextField上的各種子視圖

右側(cè)清除按鈕:

@property(nonatomic) UITextFieldViewMode clearButtonMode
typedef enum {
   UITextFieldViewModeNever,
   UITextFieldViewModeWhileEditing,
   UITextFieldViewModeUnlessEditing,
   UITextFieldViewModeAlways 
} UITextFieldViewMode;

左右側(cè)視圖,通常放置按鈕

@property(nonatomic, strong) UIView *leftView
@property(nonatomic, strong) UIView *rightView

左右側(cè)視圖顯示模式

@property(nonatomic) UITextFieldViewMode leftViewMode
@property(nonatomic) UITextFieldViewMode rightViewMode


  • UITextField的自定義鍵盤

通過(guò)inputView修改鍵盤

@property(readwrite, strong) UIView *inputView

    通常是設(shè)置為各種選擇視圖,如:

textField.inputView = [[UIDatePicker alloc] init];


通過(guò)inputAccessoryView設(shè)置鍵盤上的工具欄

@property(readwrite, strong) UIView *inputAccessoryView

    工具欄上一般放置各種按鈕,如完成、下一個(gè)、上一個(gè)等

UIToolBar * toolBar = [UIToolBar alloc] init];
textField.inputAccessoryView = toolBar;
toolBar.frame = CGRectMake(0, 0, 375, 20);
//toolBar添加按鈕
//...





向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI