ios:UITableView不会滚动到底部

时间:2013-04-11 08:22:29

标签: ios xcode uitableview uiscrollview interface-builder

我有一个滚动视图,其中有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;
}

3 个答案:

答案 0 :(得分:1)

UITableViewUIScrollView的子类。所以你基本上是在滚动视图中添加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)最后我重新加载表格数据