您好,登錄后才能下訂單哦!
由于項(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作用相似,做個筆記,如有錯誤,敬請指出!
免責(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)容。