찾다

 >  Q&A  >  본문

objective-c - 请教一个 iOS 动画

我想在上面的第一个方块和第二个方块之间插入一个新的方块,我希望的插入动画是新的方块从中心向两边展开(类似ppt中某个动画),同时其他几个方块的宽度能够慢慢变小,最后五个方块能够等宽,就像下面这样

但是我目前的情况是其中的文字会先瞬间移动到最终的位置(也就是说方块变小的过程中文字是不居中的),然后方块的宽度再慢慢变小,不知道为什么,我都是使用autolayout写的动画,我目前的写法是先写上新的方块的top,bottom,leading,trailing约束,然后调用layoutIfNeeded,最后是写上等宽约束,在animate block里面调用layoutIfNeeded。

天蓬老师天蓬老师2771일 전573

모든 응답(1)나는 대답할 것이다

  • 巴扎黑

    巴扎黑2017-04-18 09:48:05

    표현이 명확하지 않습니다. 자동 레이아웃 애니메이션에서 가장 중요한 것은 뷰의 상태를 파악하는 것입니다. 간단히layoutIfNeeded를 호출하면 마지막 효과만 렌더링됩니다. 상태 지점에 도달하기 전에 보기 상태를 저장해야 합니다. 간단히 말하면, 애니메이션이 실행된 후 레이아웃을 사용하여 효과를 얻습니다. 다른 애니메이션이 있는 경우에는 setNeedsLayout을 사용해야 합니다. 그 후 마지막으로 레이아웃을 다시 호출해야 합니다.

    으아아아

    회신하다
    0
  • 취소회신하다