? ? ?在手動(dòng)frame布局的年代骚烧,位置移動(dòng)等最基本的動(dòng)畫都是soeasy的嫩挤,但是到了用自動(dòng)布局時(shí)候血筑,因?yàn)椴荒芎蚮rame一起合用绘沉,合用不但會(huì)造成代碼的混亂煎楣,也會(huì)造成出現(xiàn)一些奇怪的現(xiàn)象。但是動(dòng)畫又是我們開發(fā)中必不可少的部分车伞,怎么破择懂,本文是我開發(fā)過(guò)程中自己摸索的,形成文字就是為了做一個(gè)筆記另玖,方便自己查看困曙,能幫到小伙伴們那就更好了。
自動(dòng)布局我用的是Masonry谦去,經(jīng)過(guò)將近一年的時(shí)候慷丽,感覺(jué)還是挺方便的。下面的場(chǎng)景都是在Masonry的布局下鳄哭。
我們就以最簡(jiǎn)單的位置上下移動(dòng)的動(dòng)畫來(lái)說(shuō)明這個(gè)問(wèn)題要糊,如果要移動(dòng)self.viewBottom,讓它上下變化,需要我們控制self.viewBottom.top的值來(lái)形成動(dòng)畫妆丘,但是這個(gè)動(dòng)畫結(jié)束以后锄俄,它的Masonry的布局并沒(méi)有變化,如果想讓它變成我們動(dòng)畫以后的結(jié)果勺拣,需要更新self.viewBottom的Masonry布局珊膜。
另外涉及到系統(tǒng)導(dǎo)航欄隱藏還是顯示的時(shí)候,Masonry的布局會(huì)發(fā)生變化宣脉,在這種情況下,如果是幾個(gè)動(dòng)畫的組合剔氏,這就要在動(dòng)畫發(fā)生前塑猖,UI對(duì)象的frame值要處于正確的值。這個(gè)可以手動(dòng)強(qiáng)制設(shè)定谈跛,否則動(dòng)畫會(huì)出現(xiàn)一些詭異的現(xiàn)象羊苟,比如,向下的動(dòng)畫感憾,它會(huì)先向上再向下蜡励。
總之用Masonry做動(dòng)畫就離不開frame,出現(xiàn)問(wèn)題一般就是這類的原因阻桅。至于Masonry的動(dòng)畫凉倚,是否有更好的方式,以后若能發(fā)現(xiàn)會(huì)及時(shí)更新嫂沉。小伙伴們?nèi)绻羞@方面的資料也可及時(shí)分享稽寒。