2013-10-19 34 views
0

我有一个视图控制器有一个UITableViewUIPageViewController。首先将UITableView's高度设置为0。点击一个按钮后,桌面视图应该向下滑动(即,增加高度),并且应该按下该按钮。我已经做了这样的...UITableView没有动画当兄弟是UIPageViewController

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; 
}]; 

预期的行为:在的tableview和pageviewcontroller都应该向下滑动的同时。

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

任何人都可以帮助我吗?让我知道你是否需要更多信息/代码。

+0

不,我想动画两个。 – mohkhan

+0

mohkhan你想要动画视图控制器吗? – SBM

+0

尝试重新载入表格中的数据。 – RFG

回答

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; 
}];