(iOS 5.1,XCode 4.4)在我正在处理的一个项目中,我有两个控制器都设置相同 UIView 的 frame 属性(分别设置大小和位置),在时间重叠的单独动画块中(第二个动画块在第一个完成之前开始)。这似乎会导致 UIView 的位置出现奇怪的跳跃(无动画变化)。
重现的最小示例(放置在新的单视图项目(iphone)的视图控制器中,并将一些按钮连接到操作方法)。
@interface ViewController ()
@property (nonatomic, strong) UIView *viewA;
@end
@implementation ViewController
- (IBAction)buttonPressed
{
// Animate
[UIView animateWithDuration:5 animations:^{
self.viewA.frame = CGRectMake(0, self.viewA.frame.origin.y, 320, 200);
}];
[UIView animateWithDuration:5 animations:^{
self.viewA.frame = CGRectMake(0, 200, 320, self.viewA.frame.size.height);
}];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.viewA = [[UIView alloc] init];
self.viewA.backgroundColor = [UIColor orangeColor];
self.viewA.frame = CGRectMake(0, 100, 320, 100);
[self.view addSubview:self.viewA];
}
@end
按下按钮后,您会看到视图跳跃大约 50 像素(移动距离的一半)。
如果有人知道为什么会发生这种情况和/或如何解决这个问题,我很想听听你的意见。先感谢您,
帕特里克