2012-08-10 107 views
0

我允许用户使用垂直呈现的模态添加新项目。完成后,模式滑出视图,并将新项目添加到列表中。知道模态动画何时完成

我希望用户通过插入带有动画的新行(或者可能选择它)来查看添加的影响。麻烦的是,如果单元格位于列表的底部,用户并不真正看到动画,因为它发生在仍然消失的模式下。

有没有办法知道这个动画完成的时间?或者我需要做一些更狡猾/哈克*

*我想存储在iVar中添加的单元格的引用,然后插入viewDidAppear,它不会触发,直到模式完成它的转换 - 其他想法将不胜感激。

编辑:我的第二个hacky的想法是将相等时间(0.3?)的动画块中的模式解雇包装到解雇。

回答

1

你是如何做你的模态转换?如果使用presentViewController而不是presentModalViewController,则表示您有completion块。同样,dismissViewControllerAnimated也有一个completion块(其中旧的dismissModalViewControllerAnimated没有)。这些都是在iOS 5中引入的。

+0

是真的,但仍需要为ios 4.3.3打补丁。任何人都知道吗? – 2012-08-23 08:44:15

+0

我想你可能会尝试像[performSelector:withObject:afterDelay:](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference。 html#// apple_ref/occ/instm/NSObject/performSelector:withObject:afterDelay :)或类似的东西,就像下面建议的RileyE一样。 – Rob 2012-08-23 08:53:51

1

如果在某些奇怪的情况下,完成块没有浮起你的船,目前大多数苹果动画的默认动画时间为0.25f秒。您可以在延迟后硬编码并执行操作,但不推荐。它只是一个工作。你应该尽可能做到罗伯特和本说的话。