中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

UI基礎UIButton的定義是什么

發布時間:2022-01-07 21:56:35 來源:億速云 閱讀:152 作者:柒染 欄目:移動開發

UI基礎UIButton的定義是什么,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

       前面寫了UIWindow、UIViewController,那些都是一些框架,框架需要填充上具體的view才能組成我們的應用,移動應用開發中UI占了很大一部分,最基礎的UI實現是使用系統提供的各種控件,其他的就是自定義實現了,作者目前是入門狀態,只能寫寫基礎控件了。

      iOS中提供了UIButton、UILable、UITextField、UIImageView等基礎UI控件,繼承于UIView。這里先拿UIButton練練手,為什么拿UIButton呢,因為UIbutton繼承自UIControl,UIControl派生自UIView類,每個控件都有很多視圖的特性,包括附著于其他視圖的能力,所有控件都擁有一套共同的屬性和方法,包含顯示內容,點擊事件等等,UIControl的子類都有事件處理能力。

UIButton的定義:

     UIButton可使用 initWithFrame、buttonWithType兩種方式創建:

1)initWithFrame

  UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(60, 60, 200, 60)];     btn.backgroundColor=[UIColor greenColor];     [btn setTitle:@"btn1" forState:UIControlStateNormal];     [self.view addSubview:btn];

2)buttonWithType

UIButton *btn2=[UIButton buttonWithType:UIButtonTypeRoundedRect];     CGRect rect=CGRectMake(60, 160, 200, 60);     btn2.frame=rect;     btn2.tag=1001;     btn2.backgroundColor=[UIColor colorWithRed:30/255.0 green:200/255.0 blue:125/255.0 alpha:1.0];     [btn2 setTitle:@"btn2" forState:UIControlStateNormal];      [btn2 addTarget:self action:@selector(btn2Pressed) forControlEvents:UIControlEventTouchDown];     [self.view addSubview:btn2];

btn2Pressed方法:

-(void)btn2Pressed{      NSLog(@"button pressed"); }

UIButtonType:

typedef enum {     UIButtonTypeCustom = 0,           // no button type   自定義,無風格     UIButtonTypeRoundedRect,          // rounded rect, flat white button, like in address card 白色圓角矩形,類似偏好設置表格單元或者地址簿卡片     UIButtonTypeDetailDisclosure,//藍色的披露按鈕,可放在任何文字旁     UIButtonTypeInfoLight,//微件(widget)使用的小圓圈信息按鈕,可以放在任何文字旁     UIButtonTypeInfoDark,//白色背景下使用的深色圓圈信息按鈕     UIButtonTypeContactAdd,//藍色加號(+)按鈕,可以放在任何文字旁 } UIButtonType;

UIButton常用屬性:

//設置對應狀態的標題內容default is nil. title is assumed to be single line

- (void)setTitle:(NSString *)title forState:(UIControlState)state;  

//設置對應狀態的標題顏色           

- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state;   

//設置對應狀態的標題陰影顏色            

- (void)setTitleShadowColor:(UIColor *)color forState:(UIControlState)state;          

//設置對應狀態的按鈕的圖片

- (void)setImage:(UIImage *)image forState:(UIControlState)state;        

//設置對應狀態的按鈕背景圖片

- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state;    

UIButton的UIControlState   :     

typedef NS_OPTIONS(NSUInteger, UIControlState) {     UIControlStateNormal       = 0,     UIControlStateHighlighted  = 1 << 0,                  // used when UIControl isHighlighted is set     UIControlStateDisabled     = 1 << 1,     UIControlStateSelected     = 1 << 2,                  // flag usable by app (see below)     UIControlStateApplication  = 0x00FF0000,              // additional flags available for application use     UIControlStateReserved     = 0xFF000000               // flags reserved for internal framework use };

更多屬性可參考官方文檔。

UIButton添加事件:

UIButton使用如下方法添加事件。

[btn addTarget:<#(id)#> action:<#(SEL)#> forControlEvents:<#(UIControlEvents)#>]


這些事件都是基于觸摸、基于值、基于編輯。可相應如下事件。

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.      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 };

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洛川县| 泉州市| 岑巩县| 尼玛县| 新宁县| 应用必备| 安塞县| 富宁县| 克什克腾旗| 梁河县| 高阳县| 宜兴市| 江口县| 晋中市| 成安县| 清原| 裕民县| 思茅市| 开阳县| 绥德县| 桂阳县| 信丰县| 灵丘县| 吴忠市| 鱼台县| 伊宁县| 鹰潭市| 东光县| 黄梅县| 玛纳斯县| 安宁市| 英吉沙县| 通城县| 涪陵区| 通州区| 谷城县| 兴义市| 额敏县| 丹东市| 安庆市| 吉安县|