UIScrollView之isTracking delaysContentTouches canCancelContentTouches 意義

一、bool 類型的tracking屬性

表意:跟蹤

當(dāng)觸摸scrollView的瞬間該屬性值變?yōu)閅ES,開(kāi)始跟蹤用戶行為,在觸摸沒(méi)有松開(kāi)時(shí)(包括滾動(dòng)或者靜止),該屬性一直是YES。

觸摸一旦消失,該屬性值為NO,scrollView為自由滾動(dòng)或者靜止?fàn)顟B(tài)。

具體事件為:

  • tracking屬性變?yōu)閅ES
  • 觸摸攔截事件
  • 一個(gè)內(nèi)置的計(jì)時(shí)器開(kāi)始生效,用來(lái)檢測(cè)在極短的時(shí)間內(nèi)手指是否發(fā)生了移動(dòng)

如果在時(shí)間間隔內(nèi)沒(méi)有發(fā)生明顯的滾動(dòng),則將觸摸事件傳遞給觸摸的subview上(如果subView可以響應(yīng)這次觸摸事件,則交給該控件處理)

如果在時(shí)間間隔內(nèi)發(fā)生較大距離的拖動(dòng),則scrollView處理這次觸摸事件,scrollView發(fā)生滾動(dòng),手指觸摸下即使有可以處理此次觸摸事件的內(nèi)部控件,也不會(huì)將其傳遞給內(nèi)部控件響應(yīng)

二、delaysContentTouches:

默認(rèn)值是YES,如果為YES,就會(huì)延遲處理這個(gè)觸摸手勢(shì)的意圖,直到確定了在極短時(shí)間內(nèi)是否發(fā)生了滾動(dòng),如果沒(méi)有滾動(dòng) ,就把觸摸事件傳遞給觸摸的subview處理 (可以響應(yīng)事件的控件) ,如果滾動(dòng)了,則scrollView就會(huì)滾動(dòng) 自身響應(yīng)觸摸事件

如果為NO,scrollView立馬觸發(fā)- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view方法 ,交給用戶自己判斷,此方法返回NO,則scrollView 不會(huì)將事件傳遞給view, 返回YES ,表示讓view響應(yīng)這個(gè)觸摸事件。默認(rèn)是返會(huì)YES

三、canCancelContentTouches:

默認(rèn)值為YES, 如果為YES,當(dāng)用戶觸摸手勢(shì)已經(jīng)被確定交給subview響應(yīng)的時(shí)候 ,會(huì)立即調(diào)用- (BOOL)touchesShouldCancelInContentView:(UIView *)view ,交給此方法處理接下來(lái)的動(dòng)作,如果此方法返回NO,則繼續(xù)傳遞給subview,scrollView不會(huì)滾動(dòng),返回YES,則scrollView會(huì)滾動(dòng) ,subview 會(huì)取消處理這個(gè)事件 如果返回NO ,則scrollView不會(huì)滾動(dòng), subview響應(yīng)這個(gè)觸摸事件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容