我正在使用此代码:
[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字段。 无论如何让它们一起移动?
注意:问题是两者都在调整大小但不是同时
答案 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
。