Итак, у меня есть очень простой UIPresentationController, который в основном отображает контентное изображение с центром на экране, его размер определяется контроллером вида preferredContentSize. (Его очень симмиллар для обычного контроллера модального представления, представленного как FormSheet).UIPresentationController preferredContenteSize update animated
То, что я пытаюсь добиться, заключается в том, чтобы динамически обновлять размер этого представления контроллеров представлений, просто изменив его preferredContentSize.
Когда я установил preferredContentSize мой подкласс UIPresentationController получить информацию об этом в:
-(void)preferredContentSizeDidChangeForChildContentContainer:(id<UIContentContainer>)container
Но как я могу здесь изменить размер кадра просмотра с анимацией? Если бы я просто позвонить:
-(void)preferredContentSizeDidChangeForChildContentContainer:(id<UIContentContainer>)container
{
[UIView animateWithDuration:1.0 animations:^{
self.presentedView.frame = [self frameOfPresentedViewInContainerView];
} completion:nil];
}
Immidiately вызывается containerViewWillLayoutSubviews и кадр меняется без анимации.
-(void)containerViewWillLayoutSubviews
{
self.presentedView.frame = [self frameOfPresentedViewInContainerView];
}
Пожалуйста, помогите мне найти способ изменить его с помощью анимации. Это должно быть возможно, поскольку оно изменяется с анимацией, например, когда происходит ротация.
ли вы исправить это без использования какого-то странного 'isAnimating' флага в' containerViewWillLayoutSubviews'? – fruitcoder