我正在创建自己的自定义视图控制器:它包含另一个UIViewController
并将该视图放在其工具栏下方。然后将容器视图控制器放在另一个视图上的任意帧上。
当我向此自定义UITableView
添加UIViewController
(以及可能还有其他视图)时,我遇到了问题(让我们称之为ContainerViewController
),然后为调整大小设置动画ContainerViewController's
视图。
问题是,当容器的动画调整大小开始时,所包含的tableview会被调整大小并放置 - tableview的大小调整根本没有动画。
一些示例代码:
我将tableview添加到viewDidLoad
中的容器视图:
[self addChildViewController:self.subviewController];
[self.view addSubview:self.subviewController.view];
[self.subviewController didMoveToParentViewController:self];
[self.viewController.view setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
我在viewWillLayoutSubviews
中设置了tableview的初始大小(在viewDidLoad
中进行设置导致了其他无关的问题):
(barController是顶部工具栏)
CGRect subviewFrame = [self.view bounds];
const CGFloat offset = CGRectGetHeight([self.barController.view frame]);
subviewFrame.origin.y += offset;
subviewFrame.size.height -= offset;
[self.subviewController.view setFrame:subviewFrame];
我为容器的大小调整动画:
[UIView animateWithDuration:0.2 animations:^{
[containerViewController.view setFrame:[self aDifferentFrameSize]];
}];