在手动frame布局的年代,位置移动等最基本的动画都是soeasy的,但是到了用自动布局时候,因为不能和frame一起合用,合用不但会造成代码的混乱,也会造成出现一些奇怪的现象。但是动画又是我们开发中必不可少的部分,怎么破,本文是我开发过程中自己摸索的,形成文字就是为了做一个笔记,方便自己查看,能帮到小伙伴们那就更好了。
自动布局我用的是Masonry,经过将近一年的时候,感觉还是挺方便的。下面的场景都是在Masonry的布局下。
我们就以最简单的位置上下移动的动画来说明这个问题,如果要移动self.viewBottom,让它上下变化,需要我们控制self.viewBottom.top的值来形成动画,但是这个动画结束以后,它的Masonry的布局并没有变化,如果想让它变成我们动画以后的结果,需要更新self.viewBottom的Masonry布局。
另外涉及到系统导航栏隐藏还是显示的时候,Masonry的布局会发生变化,在这种情况下,如果是几个动画的组合,这就要在动画发生前,UI对象的frame值要处于正确的值。这个可以手动强制设定,否则动画会出现一些诡异的现象,比如,向下的动画,它会先向上再向下。
总之用Masonry做动画就离不开frame,出现问题一般就是这类的原因。至于Masonry的动画,是否有更好的方式,以后若能发现会及时更新。小伙伴们如果有这方面的资料也可及时分享。