2014-09-29 115 views
1

我正试图在Facebook的Paper应用程序中设置菜单中使用转换:http://blog.brianlovin.com/design-details-paper-by-facebook/#1。我正在使用自定义的UIViewControllerAnimatedTransitioning对象,但无论使用什么类型的动画,我都无法达到相同的效果。所以我有一些问题:Facebook类似纸张的表格单元格动画

1)使用哪个动画?看起来细胞开始移动得非常快,然后停在最后的位置。看起来我需要POPDecayAnimation,但结果不是很接近。

2)根据单元格的索引设置动画的beginTime是否实现了动画之间的延迟?或者第一个细胞比上一个细胞有更大的速度?

+0

您是否在谈论波动过渡效应? – Injectios 2014-09-29 09:25:35

+1

https://www.cocoacontrols.com/controls/amwavetransition – Injectios 2014-09-29 09:26:11

+0

@Injectios看起来非常好!要试试 – Spail 2014-09-29 09:32:04

回答

0

由于Injectios建议AMWaveTransition有点接近Paper的动画。我最终使用它进行了一些调整。

我也在pop github页面上问过这个问题,你可以查看它here。如果你想自己实现这个动画,他们的回答可能很有用:

嘿!我在纸上实现了这一点。每个单元格上的动画都是POPSpringAnimations,并且它们通过(每帧)更新每个动画的toValue以指向之前的值的当前值连接在一起。希望有所帮助!

-1
  1. 在cellForRowAtIndexPath中,使用UIViewAnimation块。

  2. 设置电池特性按您的要求:

    • indentationLevel
    • indentationWidth
    • shouldIndentWhileEditing
  3. 然后,在动画块,改变框的位置。

  4. 例如对于第一个单元格,indetationLevel = 1和indentationWidth = cell.frame.size.width,然后在该动画块中将其更新为indetationLevel = 0和indentationWidth = 0。而对于其他细胞可以通过乘该值(cellIndexPath + 1)

  5. 欲了解更多详情请访问:https://developer.apple.com/library/ios/Documentation/UIKit/Reference/UITableViewCell_Class/index.htm

PS:更新逻辑根据您的要求

+0

这并不能解决我的问题 – Spail 2014-10-23 08:22:45

相关问题