gpt4 book ai didi

ios - 带有 UITableView 的 UIPageViewController 有奇怪的大小

转载 作者:行者123 更新时间:2023-11-29 10:34:15 27 4
gpt4 key购买 nike

我在带有 UITableView 的应用程序中使用 UIPageViewController。它工作得很好,但是当我翻页时,下一页似乎被调整了大小(好像它在完成加载之前太大了):翻页时,我可以看到 tableview 正在调整大小。当我只滑动一点(所以我不会翻到下一页)时,会显示下一页的一小部分。

UItableView在“滑动一点点”之前

UITableView Before

UITableView“滑动一点点”之后

UITableView After

当我完成幻灯片时,UITableView 将调整大小,结果将再次成为第一张图片。眼睛只能看到调整大小(它在晃动)

我的 UITableView 使用了以下约束:

UITableView Constraints

当我删除 UITableView 约束时,一切正常(除了在大于 4s 的 iPhone 上,高度和宽度不会动态改变。

我注意到在记录 tableView.frame.size.width 的宽度时,有时宽度是 336 而不是 320。(当我将约束编辑为 -8 时,宽度有时会是 320 而不是 304)。

这就是我在 ViewController 中设置 PageViewController 的方式:

- (PageContentViewController *)viewControllerAtIndex:(NSUInteger)index {
if (([self.roosterWeken count] == 0) || (index >= [self.roosterWeken count])) {
return nil;
}

// Create a new view controller and pass suitable data.
PageContentViewController *pageContentViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageContentViewController"];

pageContentViewController.rooster = [self.roosterWeken objectAtIndex:index];
pageContentViewController.pageIndex = index;
pageContentViewController.view.frame = self.view.frame;

return pageContentViewController;
}

@"PageContentViewController"是一个空的 UIPageViewController,具有以下设置:

UIPageViewController settings

PageContentViewController 在 Storyboard中看起来像这样:

PageContentViewController

最佳答案

感谢 Taylor Abernethy Newman 的解决方案:在 PageViewController 中添加以下内容:

- (void)viewDidLayoutSubviews {
CGRect frame = self.tableView.frame;
frame.origin.x = 0;
frame.origin.y = 0;
// sometimes the tableView width is higher then its parent
if(frame.size.width > self.view.frame.size.width) {
frame.size.width = self.view.frame.size.width;
}
self.tableView.frame = frame;
}

关于ios - 带有 UITableView 的 UIPageViewController 有奇怪的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27933393/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com