Я делаю видеоплеер для iPad, и у меня возникают проблемы с анимацией вращения. Обычно я имею дело с вращением, устанавливая маску автоматического вращения, но так как я работаю с видеоплеером, я хочу сохранить соотношение сторон, и я не уверен, как бы я сделал это с маской автоматического вращения.
Я сделал быстрое и грязное решение без анимации, чтобы получить правильное поведение:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
moviePlayer.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.width*0.75);
}
Работает правильно, но не красиво. В настоящее время я готовлю приложение для демонстрации, так что теперь правильной работы недостаточно, это должно быть красиво.
Я попробовал следующее, и я думаю, вы можете догадаться, почему это не работает:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
[UIView animateWithDuration:duration animations:^{
moviePlayer.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.width*0.75);
}];
}
Правильно, self.view.frame
еще не обновлен.
Любой совет, как с этим справиться, без жестко закодированных кадров?