У меня было такое же требование, и я видел много подходов - от использования слоев (что очень сложно, если вы просто хотите иметь дело с UIView) до предположений, что мне нужен «контейнер» для перехода междуПросмотры.Но если вы просто хотите перевернуть что-нибудь спереди назад, например, перевернуть игровую карту или игровой тайл, я внес одну строчную замену:
(примечание: у меня есть массив UIViews (тайлов [x])[y]) в сетке (для игры). У меня есть все мои имена файлов изображений в таблицах / массивах базы данных, которые динамически загружаются в UIImages UIImageViews. Изображение для «тыльной стороны» карты или тайла в UIImageс именем "tileBackPicImageNM".
, поэтому мой код, который просто поменял переднее изображение на изображение спины, был:
[tiles[indexX][indexY] setImage:[UIImage imageNamed:tileBackPicImageNM]];
, который отлично работает.
, но иТеперь, чтобы показать переворачиваемое действие, это:
[UIView transitionWithView:tiles[indexX][indexY] duration:0.3 options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
[[indexX][indexY] setImage:[UIImage imageNamed:tileBackPicImageNM]];
}
completion:NULL];
Я экспериментировал с различными параметрами "duration" - впоследствии сделал его плавающим, который я установил в подпрограмме viewDidLoad. Быстрее 0,3 почти не виднои значение 1 или 2 очень медленное ...
Это не включает два подэкрана, что в моем случае гораздо более полезно, так как я не хотел иметь массив контейнеровсодержащий иерархиюпредставления и т. д. и на новых уровнях и т. д. Я всегда перезагружаю массивы ...