http://www.zaachi.com/cs/items/iphone-presentmodalviewcontroller-animate.html

iPhone - presentModalViewController animate

Publikováno: 09.08.2011 12:48:57

IPhone nabízí několik různých animací, které je možné používat pro přechod na jiný screen (jinou obrazovku) nebo překreslení obrazovky.

V příkladu budou existovat dvě Views, mezi kterými se budeme přepínat.

Vytvoříme si na každém Views UIButton, na který navážeme akci, kterou nazveme například: goToNextWindow.

//*.h file:
-(IBAction)goToNextWindow:(id)sender;

Přechod ve vertíkálním stylu - UIModalTransitionStyleCoverVertical

Přechod způsobí plynulé posunutí screenu ve vertikální ose (způsobí vyjetí nového screenu zespod obrazovky)

Tento předchod je defaultní a pokud vytvoříme akci, která nebude styl přechodu měnit, bude použita přávě tato:

-(IBAction)goToNextWindow:(id)sender{
	NextWindow *window = [[NextWindow alloc] initWithNibName:nil bundle:nil];
	[self presentModalViewController:window animated:YES];
}

V případě že bychom chtěli akci nastavit, uděláme to pomocí hodnoty modalTransitionStyle:

-(IBAction)goToNextWindow:(id)sender{
	NextWindow *window = [[NextWindow alloc] initWithNibName:nil bundle:nil];
	window.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
	[self presentModalViewController:window animated:YES];
}

iphone modal

Přechod prolnutím - UIModalTransitionStyleCrossDissolve

Přechod způsobí prolnutí dvou screenu do sebe - nový screen se prolne přes původní a zobrazí

Nastavení modalTransitionStyle upravíme následně:

-(IBAction)goToNextWindow:(id)sender{
	NextWindow *window = [[NextWindow alloc] initWithNibName:nil bundle:nil];
	window.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
	[self presentModalViewController:window animated:YES];
}

iphone modal

Vodorovné překlopění - UIModalTransitionStyleFlipHorizontal

Přechod způsobí překlopení screenu, s tím že po překlopení se zobrazí nový screen.

Akci upravíme následně:

-(IBAction)goToNextWindow:(id)sender{
	NextWindow *window = [[NextWindow alloc] initWithNibName:nil bundle:nil];
	window.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
	[self presentModalViewController:window animated:YES];
}

iphone modal   iphone modal

Odloupnutí starého screenu - UIModalTransitionStylePartialCurl

Přechod působí jako odloupnutí, nebo listování.

Hodnotu pro modalTransitionStyle nastavíme jako UIModalTransitionStylePartialCurl:

-(IBAction)goToNextWindow:(id)sender{
	NextWindow *window = [[NextWindow alloc] initWithNibName:nil bundle:nil];
	window.modalTransitionStyle = UIModalTransitionStylePartialCurl;
	[self presentModalViewController:window animated:YES];
}

iphone modal   iphone modal

Závěrem

Možností pro překreslení screenu existuje samozřejmě více, tyhle jsou pouze defaultně podporované přímo v Cocoe.