顶部 UIScrollView 上的 UITableView 不起作用

Posted

技术标签:

【中文标题】顶部 UIScrollView 上的 UITableView 不起作用【英文标题】:UITableView on top UIScrollView not working 【发布时间】:2015-12-29 11:51:16 【问题描述】:

我将UITableView 放在UIScrollView 上,当我想滚动UITableView 时,它没有滚动......(UIScrollView didScroll 函数没有运行)。 我在故事板工作。 我的代码:

CGRect screenSize = [[UIScreen mainScreen]bounds];
  [_myScrollView setContentSize: CGSizeMake(screenSize.size.width, screenSize.size.height)];
   _myScrollView.delegate = self; 
     _tableView.scrollEnabled = NO;
    _myScrollView.scrollEnabled = YES;

V。 B. 我不会滚动 UIScrollView,而不是 UITableView...

【问题讨论】:

你能添加更多代码吗 我没有更多的代码,(除了标准的 UITableView 代码)。 【参考方案1】:

更改滚动视图的 contentSize。现在设置为屏幕大小。使用此代码

[_myScrollView setContentSize: CGSizeMake(screenSize.size.width, 2 * screenSize.size.height)];

【讨论】:

它正在工作,但是当我向下滚动表格时没有重新加载数据,即使我在 scrollView didScroll 和 scrollViewWillBeginDragging 中调用 [_tableView.reloadData] ...(我可以仅前 12 行)。【参考方案2】:

我认为你的等级制度是这样的::

UIView
  - UIScrollView  (outerscroll)
       - Some other views and buttons
       - UITableView (tableView)

来自Apple Documentation,您不应该在 UIScrollView 中嵌入 UITableView。

重要提示:您不应在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为这两个对象的触摸事件可能会混淆和错误处理。 您的问题确实与您的 UIScrollView 所做的有关。

但如果只是在需要时隐藏 tableview(这是我的情况),你可以将 UITableView 移动到它的 superview 中。

我在这里找到了一个小例子:https://github.com/rvirin/SoundCloud/

【讨论】:

以上是关于顶部 UIScrollView 上的 UITableView 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 弹回顶部

将 UIView 附加到 UIScrollView 的顶部

UIScrollview 内容总是在顶部

iPhone - 知道UIScrollView是否达到顶部或底部

UIScrollView 总是弹回顶部

UIScrollView : UIEdgeInsets 仅适用于“顶部”和“左侧”