В приложении для 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];
Спасибо за любые подсказки, по которым мне следует идти по этому пути.