視頻滑動(dòng)停止后自動(dòng)播放的幾個(gè)方法:scrollViewDidEndDecelerating和scrollViewDidEndDragging:willDecelerate:方法備忘

場景:

最常見的一個(gè)功能場景就是視頻自動(dòng)播放。我們滑動(dòng)停止的位置播放視頻,屏幕上其他位置則不播放視頻(停止播放)。這里就涉及到對(duì)列表滾動(dòng)事件的一個(gè)監(jiān)聽。 常見的scrollViewDidScroll方法就不說了,下邊的兩個(gè)方法,這里詳細(xì)的整理行下,做個(gè)備忘。

方法一:

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    NSLog(@"%d------%s", decelerate, __FUNCTION__);
}

顧名思義,當(dāng)有拽的行為的時(shí)候,會(huì)觸發(fā):

  1. 觸發(fā)時(shí)機(jī):手指按住屏幕滑動(dòng)scrollView,然后手指離開屏幕的時(shí)候,觸發(fā)
  2. decelerate:
    (1)當(dāng)你滑動(dòng)scrollView,然后手指離開屏幕,只要scrollView還能自行滾動(dòng)一段時(shí)間,那么則是1。
    (2)和上邊相反則是0,首先強(qiáng)調(diào)下這個(gè)情況和滑動(dòng)速度沒有關(guān)系。 當(dāng)手指按住scrollView,快速或者慢速的滑動(dòng),但是手指始終不離開屏幕,這樣的話手指滑動(dòng)多少,scrollView就會(huì)滾動(dòng)多少,完全跟手。 那么此時(shí)手指離開屏幕后scrollView是禁止的,不會(huì)再自行滾動(dòng),那么就是0。

方法二:

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"%s",__FUNCTION__);
}

顧名思義,當(dāng)減速結(jié)束的時(shí)候,會(huì)觸發(fā):

  1. 觸發(fā)時(shí)機(jī):當(dāng)手指離開屏幕后,scrollView仍然在自行滾動(dòng),停止后,會(huì)觸發(fā)這個(gè)方法。

特殊場景:

有一個(gè)場景, 當(dāng)你快速滑動(dòng)scrollView, 然后手指離開屏幕, 此時(shí)decelerate = 1。 然后在scrollView還在滑動(dòng)的過程中時(shí)手指按住scrollView讓其停止,scrollView表現(xiàn)是立即停止?jié)L動(dòng),此時(shí)手指離開屏幕, 會(huì)再次回調(diào)decelerate = 0,同時(shí)回調(diào)scrollViewDidEndDecelerating

所以我們一般這么寫:

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
    if (!decelerate) {
        NSLog(@"這個(gè)方法加decelerate判斷,只是處理scrollView跟著手指滑動(dòng)而滑動(dòng),手指離開屏幕就停止的情況");
    }
}

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"這個(gè)方法用來處理用戶手指離開屏幕,scrollView仍然滾動(dòng),然后停止的情況");
}

對(duì)于視頻自動(dòng)播放,以上兩個(gè)方法在調(diào)用視頻播放方法的時(shí)候,視頻播放方法內(nèi)部都要進(jìn)行容錯(cuò)處理:如果視頻正在播放,那么就不要重新走播放流程了。

交流


希望能和大家交流技術(shù)
Blog:http://www.lilongcnc.cc


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容