0

と を持つView ControllerがありUITableViewますUIPageViewController。高さは最初UITableView'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 が下にスライドします。

誰でもこれで私を助けることができますか? さらに情報/コードが必要な場合はお知らせください。

4

1 に答える 1

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;
}];
于 2013-10-19T10:05:41.373 に答える