0

我有一个滚动视图,其中包含 3UITableViews用于分页。所有的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;
}
4

3 回答 3

1

UITableView是 的子类UIScrollView。所以你基本上是在一个滚动视图中添加 3 个滚动视图。我不认为这是可取的。

我认为这里的问题是设备对哪个 scrollView 将处理触摸/拖动事件感到困惑。

如果您确实需要滚动视图进行分页,我建议您创建滚动视图,但为此禁用触摸事件。您可以添加按钮以允许页面导航(而不是允许用户向左/向右滑动)。这样,您可以确保只有可见的 tableview 才能获得触摸/拖动事件。

于 2013-04-11T08:28:03.680 回答
0

在这里发现了类似的问题:UITableView Won't Scroll In certain Conditions

我的第一个 UITableView 顶部有一个搜索栏。

在上面的帖子中,他们建议添加 [self.tableView setAlwaysBounceVertical:YES];

我对此进行了测试,但它不起作用。我把它放在我的视图中确实为 UITableView 加载了。

于 2013-04-11T08:40:12.377 回答
0

得到它的工作:

(1)单击“加载更多”单元格并收到信息后,我删除所有子视图
(2)然后我创建新框架并将它们添加回子视图
(3)最后我重新加载表格数据

于 2013-04-12T18:30:10.963 回答