2012-03-01 83 views
0

我正在iPhone屏幕上移动多个对象,并同时更改视野。这看起来参差不齐,因为不同的对象移动发生在不同的时间,特别是通过调用zoomToRect将视图移动到它们都住的scrollView。iPhone:一致移动物体

如果这些是电脑动画的旧日,我会说我想要一个帧缓冲区来让事物在瞬间一起移动。但我想在iOS中有更高层次的做法。

什么是最简单/最干净的方式让所有这些动作在同一瞬间熄灭?

编辑:为了澄清,我做了一个单独的问题,保持ScrollView与其中的对象同步移动。

回答

3

的Core Animation:https://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/AnimatingViews/AnimatingViews.html#//apple_ref/doc/uid/TP40009503-CH6-SW1

最简单的方法是一个像块:

[UIView animateWithDuration:1.0 animations:^{ 
    // do all kinds of repositioning, alpha changes, etc. 
}]; 

与往常一样,检查文档。如果您同时使用ScrollView zoomToRect:animated:,可能会有一些排序问题。

+0

哦,我确实检查了文档。但是AppKit有一些旧的做法。有Core Animation的做事方式。你可以从字面上访问一个帧缓冲区。你可以将所有东西都设置为OpenGL。而这些只是我可以从头脑中想到的方式。文档告诉你哪些方法是可能的,但不是哪些是理智的。 – baudot 2012-03-01 02:52:49

+0

并且在这些方法的每一种中,您都可以通过不同的方式获得帧缓冲区效果... – baudot 2012-03-01 03:05:24

+0

好点。依靠UIView的CoreAnimation支持层将是最好的“高层次”方法;加上内联块语法使得它非常清晰和简洁,在我看来。 – gregheo 2012-03-01 03:58:14