【发布时间】:2011-02-24 21:03:17
【问题描述】:
我在我的 iPhone 应用程序中显示两张图片,一张在顶部,一张在底部。它们覆盖了整个屏幕。用户可以通过滑动手势更改任一图像,具体取决于滑动开始的位置。
我希望图像随着动画过渡而变化。它目前可以在没有动画的情况下工作,或者在整个屏幕过渡的情况下工作。是否可以在屏幕的一部分上进行转换?
我第一次加载图像(在 viewDidLoad 中)因此:
// top image
UIImage *topImage = [UIImage imageNamed:@"top1.png"];
CGRect topframe = CGRectMake(0.0f, 0.0f, 320.0f, 240.0f);
UIImageView *topView = [[UIImageView alloc] initWithFrame:topframe];
topView.image = topImage;
[self.view addSubview:topView];
[topView release];
// bottom image
UIImage *bottomImage = [UIImage imageNamed:@"bottom1.png"];
CGRect bottomframe = CGRectMake(0.0f, 240.0f, 320.0f, 240.0f);
UIImageView *bottomView = [[UIImageView alloc] initWithFrame:bottomframe];
bottomView.image = bottomImage;
[self.view addSubview:bottomView];
[bottomView release];
当我检测到滑动,并检测到要更改两个图像中的哪一个时,我会调用如下例程:
- (void)changeTopImage:(NSString *)newImage {
UIImage *topImage = [UIImage imageNamed:newImage];
CGRect topframe = CGRectMake(0.0f, 0.0f, 320.0f, 240.0f);
UIImageView *topView = [[UIImageView alloc] initWithFrame:topframe];
topView.image = topImage;
[self.view addSubview:topView];
[topView release];
}
本质上,我不断地加载图像。这是最好的方法吗,尤其是在内存管理方面?
我尝试过的所有其他方法,使用以下技术,使整个屏幕过渡:
[UIView beginAnimations:nil context:nil];
...
[UIView commitAnimations];
感谢任何关于我应该采取何种方式的线索。
【问题讨论】:
标签: iphone cocoa-touch uiview core-animation uiimage