溫馨提示×

溫馨提示×

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

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

如何設(shè)置scrollview的contentoffset卻不觸發(fā)DidScroll方法

發(fā)布時間:2020-10-09 07:15:46 來源:網(wǎng)絡(luò) 閱讀:4777 作者:JoeyYYF 欄目:開發(fā)技術(shù)

由于項(xiàng)目需要自定義一個日歷,后來在GitHub上找到了FSCalendar跟我們的項(xiàng)目需求很相似,就想拿過來改一下,看了看代碼,作者邏輯代碼能力挺強(qiáng)悍的(最起碼我看代碼饒了很長時間還沒有完全看懂)。我們的需求就是要把FS日歷的hearder換成中間顯示月份兩邊是兩個button可以點(diǎn)擊向左向右切換月份,由于作者所有切換日歷的邏輯都寫在Scrollview的代理方法scrollViewDidScroll里面,所以在我的button點(diǎn)擊事件里面設(shè)置Scrollview的contentoffset的時候,系統(tǒng)會自動調(diào)用ScrollviewDidScroll方法,所以除了執(zhí)行點(diǎn)擊事件里面我設(shè)置的更換日歷相關(guān)邏輯,還會自動調(diào)用ScrollviewDidScroll方法中實(shí)現(xiàn)的邏輯,導(dǎo)致混亂。最終還是受作者的代碼啟發(fā),使用bounds代替contentoffset,同樣實(shí)現(xiàn)切換Scrollview顯示的位置但是不會觸發(fā)ScrollviewDidScroll方法,核心代碼如下:

    

_scrollView.bounds = CGRectOffset(_scrollView.bounds, self.flowOffset.x, self.flowOffset.y);


其實(shí)bounds的x,y值也是可以不為0的,不為0時代表相對于自身坐標(biāo)系的位置偏移,和contentoffset作用相似,做個筆記,如有錯誤,敬請指出!

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

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

AI