Я хочу создать анимацию перехода, аналогичную открытию приложения в iOS 7. Теперь я рассматриваю этот подход: Реализация без перехода, но столкнулся с проблемой: при реализации в пользовательском переходе код не может изменить размер кадра контроллера представления, который является основной частью анимации. Как я вижу, он применяет позицию контроллера просмотра, но не может изменить его размер. Правильно ли я понимаю, что свойство viewcontroller.view.frame не может быть анимировано и должно оставаться постоянным и равным размеру экрана устройства? Я уже реализовал что-то подобное с CGAffineTransformMakeScale
, но это немного странно, поэтому я ищу лучшее решение. Ниже я вставляю код, который использую для перехода.
#import "ZoomSegue.h"
#import "MiniMapViewController.h"
#import "InteractiveMapViewController.h"
@implementation ZoomSegue
- (void)perform {
InteractiveMapViewController *sourceViewController = self.sourceViewController;
MiniMapViewController *destinationViewController = self.destinationViewController;
destinationViewController.view.alpha = 0.0f;
destinationViewController.view.hidden = NO;
//Just to check, lets make view really small. Position it to the center we get from the segue.
destinationViewController.view.frame = CGRectMake(_originatingPoint.x, _originatingPoint.y, 60.0f, 60.0f);
[sourceViewController.view addSubview:destinationViewController.view];
float animationDuration = 1.5f;
[UIView animateWithDuration:animationDuration/2.0f animations:^{
destinationViewController.view.alpha = 1.0f;
}];
[UIView animateWithDuration:animationDuration animations:^{
//Just to check, lets make view very big. It does not work, although, the view goes to the upper left corner, so position works, but not the size
CGRect x = CGRectMake(0.0f, 0.0f, 9590.0f, 91366.0f);
destinationViewController.view.frame = x;
}];
}
@end
[icon removeFromSuperview]; [bg removeFromSuperview];
после этой строки:[source presentViewController:dest animated:NO completion:nil];
, потому что, если эти снимки не удаляются из своего супер, они появляются после раскручивания перехода. 24.07.2014