代码之家  ›  专栏  ›  技术社区  ›  Hunter

在某些情况下,uiTableView无法滚动

  •  1
  • Hunter  · 技术社区  · 15 年前

    我的应用程序有一组类别。类别可以有子类别。

    DirectoryCategoryController是第一个屏幕,显示所有顶级类别。工作很好。当您点击一个单元格时,如果所选的类别有子类别,我将实例化DirectoryCategoryController的一个新实例,并将其推送以显示子类别。从那里,您可以点击一个子类别并查看内容。

    问题是,当顶层工作正常时,当我点击并查看子类别时,表视图将不会滚动。搜索栏进行触摸,表格单元格进行触摸,但上下滚动不起作用,就像表格视图垂直冻结在空间中一样。

    如果我点击搜索栏,然后点击取消,或者如果我进入一个子类别的内容,然后点击后退,那么没有滚动的非常相同的表视图就可以了。

    此外,如果表视图中的项目多于屏幕所能容纳的项目(在这个布局中,大约有8个以上的项目),那么一切都可以正常工作。

    很奇怪的问题;有点让我心烦意乱。有什么见解吗?

    2 回复  |  直到 12 年前
        1
  •  14
  •   Hunter    15 年前

    所以,我想我会作为参考回答。

    在这一点上,我认为这可能是iPhone操作系统的缺陷,我正在提交一份雷达文件。

    如果所有内容都适合一个屏幕,uiTableView是其中一个子类的uiScrollView将不会尝试滚动。

    在我的例子中,滚动视图似乎认为所有内容都适合(非常接近),但它不适合。实际上,如果从uiTableView中删除uiSearchBar,所有内容都适合并且不需要滚动。我的猜测是,当连接uisearchbar时,它错误地确定了几何图形。

    不管怎样,解决方法是添加: [self.tableview setalwaysboungsvertical:是];

    奇怪的是,当另一个视图被按下然后弹出时,垂直反弹工作良好,进一步加深了我的怀疑,这是一个iPhone错误。

        2
  •  0
  •   Moshe    12 年前

    我在使用 UITableView 用一个 UISearchBar 作为头视图,在Xcode4.3.1的Interface Builder中配置。在我的 viewDidLoadMethod ,我添加了以下代码,它为我修复了问题:

    self.contactsTable.bounces = YES;

    我相信这是一个禁用 bounces 属性,但可以通过重新启用它来修复。