今天在做项目的时候,项目使用的是xib做的,页面中需要有个动画效果,使用UIView动画如下图:

iOS使用xib手动实现动画效果iOS使用xib手动实现动画效果

iOS使用xib手动实现动画效果

想要改变视图的宽度来实现动画效果,将这条约束拖到ViewController成为属性

iOS使用xib手动实现动画效果iOS使用xib手动实现动画效果

iOS使用xib手动实现动画效果

使用如下方法,发现不能进行动画效果:

iOS使用xib手动实现动画效果iOS使用xib手动实现动画效果

iOS使用xib手动实现动画效果


但是发现没有相关的动画效果。最后发现使用xib动画和普通的动画不太一样,需要如下操作才能成功实现动画:

iOS使用xib手动实现动画效果iOS使用xib手动实现动画效果iOS使用xib手动实现动画效果


两个重要的注意事项:

  1. 您需要调用 layoutIfNeeded 动画块内。苹果公司其实建议你称之为一次之前要确保所有挂起的布局操作已完成的动画块
  2. 您需要调用它专门在父视图上 (例如 self.view ),不能在子视图具有附加到它的约束。这样做将更新所有约束视图,包括动画可能会认为,你改变了的约束约束其他视图 (如视图 B 附加到底部的视图 A 和您刚刚更改视图的顶部偏移量和你想要使用它进行动画处理的视图 B)





相关文章:

  • 2021-09-07
  • 2021-11-06
  • 2021-09-01
  • 2021-10-06
  • 2021-11-20
  • 2021-12-19
  • 2021-12-25
  • 2021-12-16
猜你喜欢
  • 2018-06-19
  • 2021-11-11
  • 2019-11-06
  • 2021-11-29
  • 2021-09-28
  • 2021-10-08
  • 2020-04-13
  • 2021-08-13
相关资源
相似解决方案