我怎么能一次动画两个UIView reisizes?

时间:2010-11-28 13:19:31

标签: iphone objective-c cocoa-touch uiview uikit

我正在使用此代码:

   [UIView beginAnimations:nil context:NULL];  
   [UIView setAnimationDelegate:self];
   [UIView setAnimationDidStopSelector:@selector(_shrinkDidEnd:finished:contextInfo:)];
   tblSimpleTable.frame = tableFrame;  
   messegeField.frame = messegeFrame;
   [UIView commitAnimations];

其中messegeFrame和tableFrame是此视图的新框架。 我希望这会使表和messege字段一起移动,但首先表移动,然后才移动到messege字段。 无论如何让它们一起移动?

注意:问题是两者都在调整大小但不是同时

2 个答案:

答案 0 :(得分:1)

尝试在动画上设置一个计时器,我同时移动了几十个视图,这是你代码中明显的缺席:

[UIView beginAnimations:nil context:NULL];  

[UIView setAnimationDuration:0.3];

[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(_shrinkDidEnd:finished:contextInfo:)];
tblSimpleTable.frame = tableFrame;  
messegeField.frame = messegeFrame;
[UIView commitAnimations];

我也不会因为我没有使用setAnimationDidStopSelector,所以如果这是你的问题,你可以调用动画的结尾,并将NSTimer设置为与动画相同的时间长度。

答案 1 :(得分:0)

作为面值,这段代码看起来不错,而且我之前使用过这种方法来翻译多个对象。

如果您只是移动这两个对象,您可以尝试使用其他选项:UIOBJECT.center - 尽管这会间接影响帧。或者过度使用CGAffineTransformTranslate