1、問(wèn)題背景:
最近有個(gè)需求是列表滾動(dòng)的時(shí)候修改其他view的透明度和位置,接到需求立馬想到通過(guò)scrollview的scrollViewDidScroll:的回調(diào)然后獲取scrollview的contentOffset.y,然后設(shè)置位置和透明度,結(jié)果比較失望,總是會(huì)出現(xiàn)位置停在某個(gè)位置或者透明度不對(duì)。
2、問(wèn)題分析:
在scrollViewDidScroll:方法里面輸出contentOffset.y,隨意拖動(dòng)幾下,獲得如下結(jié)果:

1555238511903.jpg
發(fā)現(xiàn)在scrollViewDidScroll:訪問(wèn)contentOffset是不連續(xù)的,總是認(rèn)為這個(gè)方法是實(shí)時(shí)回調(diào)的,看來(lái)下官方API的說(shuō)明:

image.png
按蘋(píng)果的說(shuō)法應(yīng)該是any offset changes都會(huì)調(diào)用。
3、解決方案:
然后想到嘗試用KVO監(jiān)聽(tīng)scrollview的contentOffset的變化然后設(shè)置位置和透明度,結(jié)果可以滿(mǎn)足需求。