我有一个滚动视图,其中有3 UITableViews
用于分页。所有UITableViews
都加载了更多的数据单元格。第一个UITableView
加载的单元格数多于其他两个单元格。首先查看此UITableView
时,我可以滚动到底部,但当我滚动到第二个UITableView
并返回到第一个UITableView
时,我无法再向下滚动。好像我必须调整滚动视图的大小。为什么我不能在视图刷新后滚动到底部?任何帮助都会很棒。
*第一个UITableView
顶部有一个搜索栏。另外两个没有。我尝试删除搜索栏,但错误仍然存在。
//Create a frame for each page and add the page to the scroll view
- (void)frameToScrollView{
if (pages!=NULL) {
for (int i = 0; i < pages.count; i++) {
//Get the current view controller
UITableViewController *controller = [pages objectAtIndex:i];
//Create a frame for the current table view controller
CGRect frame = controller.view.frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
controller.view.frame = frame;
//Add the the current table view controller page to the scroll view
[self.scrollView addSubview:controller.view];
}
}
}
设置其他属性:
//Set the properties for the scroll view
- (void)setScrollViewProperties{
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * pages.count, self.scrollView.frame.size.height);
self.scrollView.contentOffset = CGPointMake(self.scrollView.frame.size.width, 0);
self.scrollView.scrollsToTop = NO;
}
答案 0 :(得分:1)
UITableView
是UIScrollView
的子类。所以你基本上是在滚动视图中添加3个滚动视图。我不认为这是可取的。
我认为这里的问题是设备对哪个scrollView将处理触摸/拖动事件感到困惑。
如果您确实需要scrollView进行分页,我建议您创建scrollView,但为此禁用触摸事件。您可以添加按钮以允许页面导航(而不是允许用户执行左/右滑动)。这样,您可以确保只有可见的tableview才能获得触摸/拖动事件。
答案 1 :(得分:0)
在此处发现类似问题:UITableView Won't Scroll In Certain Conditions。
我的第一个UITableView顶部有一个搜索栏。
在上面的帖子中,他们建议添加[self.tableView setAlwaysBounceVertical:YES];
我测试过这个并没有用。我把它放在我的视图中为UITableView加载了。
答案 2 :(得分:0)
搞定了:
(1)&#34;加载更多&#34;单击单元格并收到信息我删除所有子视图
(2)然后我创建新的帧并将它们添加回子视图
(3)最后我重新加载表格数据