在屏幕上打开/关闭(相同)图像,但不使用任何额外的UIImageViews

时间:2012-03-21 21:46:17

标签: ios cocoa-touch

我不确定这是否可行,但在我以另一种方式做之前想知道。所以我有我的主视图,中间是UIImageView,我已经声明并合成了。我想将图像滑出屏幕并将另一个图像滑开。但是我要使用相同的UIImageView执行此操作。我希望将其滑出,然后重新滑动相同的视图,但使用不同的图像。

不确定如何以这种方式完成。我想也许可以创建一个等于当前的临时图像视图,将它添加到同一帧中的视图,然后将临时图像从视图和主图像视图中重新滑动。

想了解你的意见。

2 个答案:

答案 0 :(得分:4)

有些人在玩,并找到了一个相当简单的解决方案。

self.myImageView.image = [UIImage imageNamed:myNewImageString];

CATransition *animation = [CATransition animation];
[animation setDuration:1];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromRight];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[[self.myImageView layer] addAnimation:animation forKey:@"SlideOutandInImagek"];

在设置新图像之前,似乎保留了上一张图像。像梦一样工作。

感谢所有意见和建议。

答案 1 :(得分:0)

查看你的评论,在UIImageView上使用屏幕上不可能有两个图像,所以是的,你必须创建一个临时图像,但它不必保持很长时间,只需设置你的合成一个到UIView animateWithDuration:animations:completion的完成参数中的临时值,让临时值超出范围(如果是ARC)或释放它(非ARC)。