【问题标题】:How do I make a UITableView stop scrolling如何让 UITableView 停止滚动
【发布时间】:2012-04-17 20:04:57
【问题描述】:

我并不是说我想禁用滚动。我希望能够以编程方式告诉表格立即停止移动(但之后它应该仍然可以滚动)。这可能吗?

【问题讨论】:

  • 尝试查看此链接:stackoverflow.com/questions/986392/… 这也可以:[tableView setContentOffset:tableView.contentOffset animated:NO];希望能帮助到你。 :)
  • 这个标题有点误导。
  • @JonathanKing:我认为根本不是。 “如何使表格停止滚动”和“如何防止表格滚动”之间存在很大差异。这也是为什么问题有一个标题和更长的描述。
  • @MusiGenesis 好点,虽然我会说“如何让 UITableView 在滚动动画期间停止移动”之类的标题,甚至只是用“移动”替换“滚动”(你有写在您的描述中)会更准确。

标签: ios uitableview scroll


【解决方案1】:

UITableView 是UIScrollView 的子类。如果您告诉它滚动到当前位置,它将停止滚动,因此这应该适合您:

[tableView setContentOffset:tableView.contentOffset animated:NO];

【讨论】:

  • 嗯,这种方法有效,但它只能阻止表格滚动。如果表格没有足够的行来实际滚动,如果我下拉它仍然会反弹一点,这会触发 scrollViewDidScroll: 调用,我试图通过停止滚动来防止发生这种情况
  • 在这种情况下,如果表格视图没有足够的行数,您应该禁用滚动。
  • 请注意,您必须使用此答案中指示的方法,直接设置contentOffset 属性不会取消任何正在进行的滚动动画。
【解决方案2】:

将您的表格视图绑定到名为tableView 的变量,然后使用以下行可以禁用Objective-C 中的滚动:

tableView.scrollEnabled = NO;

Swift 版本:

tableView.isScrollEnabled = false

如果您希望它再次可滚动,请将其设置为 YES (true)。

【讨论】:

    【解决方案3】:

    设置tableView.alwaysBounceVertical = false;

    【讨论】:

    • 这与这个问题有什么关系?
    • @Rambatino:我认为用户在选择的答案下回复了我关于防止弹跳的评论,尽管作为评论会更好。
    【解决方案4】:

    如果您使用的是表格视图控制器,请按照以下步骤操作

    1. 在情节提要上选择表格视图控制器
    2. 转到属性检查器->滚动视图
    3. 取消选中滚动启用

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 1970-01-01
      • 2014-07-06
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2023-03-20
      • 2011-01-13
      • 1970-01-01
      相关资源
      最近更新 更多