所以我有一个非常基本的UIPresentationController,它基本上以屏幕为中心显示contentView,它的大小由视图控制器preferredContentSize 决定。(它非常类似于以 FormSheet 形式呈现的常规模式视图控制器)。
我想要实现的是能够动态更新此视图控制器视图的大小,只需更改它的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];
}
立即被调用 containerViewWillLayoutSubviews 并且框架在没有动画的情况下被更改。
-(void)containerViewWillLayoutSubviews
{
self.presentedView.frame = [self frameOfPresentedViewInContainerView];
}
请帮我找到一种方法,用动画调整它的大小。这一定是可能的,因为它会通过动画调整大小,例如在发生旋转时。