国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > iOS > 正文

深入淺析IOS中UIControl

2020-07-26 03:33:16
字體:
供稿:網(wǎng)友

UIEvent是一系列UITouch的集合,在IOS中負(fù)責(zé)響應(yīng)觸摸事件。另外還提到了響應(yīng)者鏈的概念,在IOS中,所有事件有一個最先響應(yīng)者,事件可以沿著響應(yīng)者鏈向下傳遞。

接下來是UIControl對象

UIControl是UIView的子類,當(dāng)然也是UIResponder的子類。UIControl是諸如UIButton、UISwitch、UITextField等控件的父類,它本身也包含了一些屬性和方法,但是不能直接使用UIControl類,它只是定義了子類都需要使用的方法。

UIControl對象采用了一種新的事件處理機(jī)制,將前一節(jié)直接處理的觸摸事件轉(zhuǎn)換成簡單操作,這樣可以無需關(guān)心用戶訪問控件的具體方式。觸摸事件到達(dá)UIControl對象(由響應(yīng)者鏈派遣)后,在UIResponder的方法中(如touchBegan:withEvent)中,UIControl將標(biāo)準(zhǔn)的觸摸事件轉(zhuǎn)換為特殊的控件事件,簡單的理解就是,UIControl把復(fù)雜的觸摸事件封裝成了簡單的易于使用的控件事件。例如通過UIControl對象處理后,按下按鈕的事件就被封裝成一個控件事件,而不用去判斷觸摸屏幕的整個操作過程。

例如按鈕的單擊事件:UIControlEventTouchUpInside

我們所需要知道的是UIControl首先將觸摸事件轉(zhuǎn)換為控件事件,再轉(zhuǎn)換為帶接收放的操作。我們只要編寫第二次轉(zhuǎn)換的代碼,就是將控件事件轉(zhuǎn)換為有目標(biāo)的操作。

使用addTarget:action:forControlEvents

這是UIControl的一個方法,為指定的控件對象添加事件,例如:

[controlObj addTarget:recepientObj action @selector(method) froControlEvents : UIControlEvents];

controlObj是要響應(yīng)事件的控件對象;

參數(shù)receientObj是要把消息發(fā)送到哪里,一般是self,通常指實(shí)例化控件對象的控制器;

action后面是一個選擇器,表示該事件需要響應(yīng)的方法,事件做什么其實(shí)就寫在這個方法里面;

最后一個是事件類型,表示響應(yīng)什么樣的事件。

使用的兩種方式:

1.通過代碼

在代碼中新建一個按鈕,然后為按鈕對象添加addTarget:action:forControlEvents方法,然后編寫響應(yīng)方法即可。

2.通過可視化實(shí)現(xiàn)

在IB中按住control鍵,點(diǎn)擊鼠標(biāo)從按鈕拖動到對應(yīng)的.h文件中,就建立了一個IBAction方法,在此方法中編寫事件邏輯便可完成事件響應(yīng),用這種方法相比第一種來說更直觀,開發(fā)效率也更高。

后續(xù)還會使用IOS中其他控件,但大致原理都是一樣的,后面會結(jié)合新的知識來使用這些控件,包括對控件的自定義樣式等。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 砀山县| 寿阳县| 梁山县| 石楼县| 元江| 忻州市| 资阳市| 大同市| 石城县| 邯郸市| 锡林郭勒盟| 鄯善县| 任丘市| 马边| 个旧市| 从江县| 闸北区| 神农架林区| 乡城县| 鹿泉市| 鄄城县| 蒲城县| 建湖县| 华宁县| 拉萨市| 丰原市| 满洲里市| 长兴县| 信宜市| 鹤峰县| 五指山市| 都江堰市| 长乐市| 寿阳县| 天柱县| 达拉特旗| 古丈县| 大石桥市| 岐山县| 台中市| 东乌珠穆沁旗|