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