在同一时间开始他们,给需要旅行两倍远两倍的时间这样做动画:
[UIView animateWithDuration:0.25 animations:^ {
myView1.frame = CGRectMake(0.0, 0.0, 100.0, myView1.frame.size.height - 100.0);
}];
[UIView animateWithDuration:0.5 animations:^ {
myView2.frame = CGRectMake(0.0, 0.0, 100.0, myView1.frame.size.height - 50.0);
}];
基本速度的数学。
的另一种方法:
[UIView animateWithDuration:0.25 animations:^{
myView1.frame = CGRectMake(0.0, 0.0, 100.0, myView1.frame.size.height - 50.0);
myView2.frame = CGRectMake(0.0, 0.0, 100.0, myView1.frame.size.height - 50.0);
}
completion:^{
[UIView animateWithDuration:0.25 animations:^{
myView2.frame = CGRectMake(0.0, 0.0, 100.0, myView1.frame.size.height - 50.0);
}];
}];
我不知道哪种方法更好或将是优选的。
第一种方法使用两个独立调用animateWithDuration
,每个视图一个,一个动画的两倍时间的距离(所以相同的速度整体)的两倍。
第二种方法通过completion
块使用对animateWithDuration
的嵌套调用。首先,两个视图以相同的速度动画到相同的大小。接下来,需要走两次距离的视图会为剩余距离(相同速度)生成动画。
你有没有注意到你正在将view1的高度分配给view2,并且顺便提一句,如果两个视图的大小相同,第二个视图将以双倍速度进行,因为它必须将高度最小化为几乎两倍比view1 – channi
是的,我意识到。 – BytesGuy
那么问题是否解决? – channi