当兄弟是UIPageViewController时,UITableView没有动画

时间:2013-10-19 07:28:45

标签: ios objective-c uitableview uipageviewcontroller

我有一个视图控制器,其中包含UITableViewUIPageViewControllerUITableView's高度首先设置为0。单击按钮后,桌面视图应向下滑动(即,增加高度),并且应按下PageViewController。我这样做了......

float yPos = 61;
CGRect fr2 = self.pageController.view.frame;// UIPageViewController
CGRect fr1 = self.categoriesTable.frame; // UITableView
if (self.categoriesTable.frame.size.height == 0.0){
    fr1.size.height = 44 * self.categories.count + 20; // categories is a datasource
    yPos = yPos + 44 * self.categories.count + 20;
}else{
    fr1.size.height = 0.0;
}
fr2.origin.y = yPos;
[UIView animateWithDuration:0.3 animations:^{
    self.pageController.view.frame = fr2;
    self.categoriesTable.frame = fr1;
}];

预期行为:表格视图和pageviewcontroller应同时向下滑动。

观察到的行为:只有pageviewcontroller向下滑动。表格视图的框架没有变化。但是,如果再次执行此方法,则Tableview会向下滑动。

任何人都可以帮我吗?如果您需要更多信息/代码,请与我们联系。

1 个答案:

答案 0 :(得分:0)

好的,好像我修好了。我决定来回翻译pageviewcontroller以达到同样的效果。以下是工作代码。

float yPos = 0;
CGRect fr2 = self.pageController.view.frame;
CGRect fr1 = self.categoriesTable.frame;
if (self.categoriesTable.frame.size.height == 0.0){
    fr1.size.height = 44 * self.categories.count + 20;
    yPos = 44 * self.categories.count + 20;
}else{
    fr1.size.height = 0.0;
}
fr2.origin.y = yPos;

[UIView animateWithDuration:0.3 animations:^{
    self.pageController.view.layer.affineTransform = CGAffineTransformMakeTranslation(0, yPos);
    self.categoriesTable.frame = fr1;
}];