我正在尝试动画UIView左右滑动。我试过的是截取当前视图的屏幕截图,而不是更新视图的屏幕截图,同时更新视图的屏幕内容,然后执行动画。但屏幕截图没有显示在屏幕上。这只是黑色,直到原始视图滑回屏幕上。下面是我使用的代码:左右滑动UIView
UIGraphicsBeginImageContext(self.view.window.frame.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *iv = [[UIImageView alloc] initWithFrame:CGRectMake(self.view.frame.size.width, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)];
iv.image = image;
[self.view.window insertSubview:iv aboveSubview:self.view];
self.view.frame = CGRectMake(-self.view.frame.size.width, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
[UIView transitionWithView:self.view duration:0.5 options:UIViewAnimationOptionCurveEaseInOut animations:^{
iv.frame = CGRectMake(self.view.frame.size.width*2, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
[self loadData];
self.view.frame = CGRectMake(0, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
} completion:NULL];
[iv removeFromSuperview];
[iv release];
你能发布最终的代码吗?我遵循你的建议,但仍然遇到你描述的问题(截图没有出现)。 – user664939 2014-04-21 17:43:52
@ user664939我真的不知道我用过这个。但从我的回答判断,你可以添加一个完成块来删除视图。 – edc1591 2014-04-21 23:46:37
感谢您回复我的评论。基于这个和其他一些问题,我能够得到它的工作。 – user664939 2014-04-22 00:05:28