当前位置: 首页 > 面试题库 >

iOS tableview如何检查它是向上滚动还是向下滚动

汪茂
2023-03-14
问题内容

我正在学习如何使用TableViews,并且想知道如何查看tableView是向上滚动还是向下滚动?我一直在尝试诸如此类的各种操作,但由于下面是针对滚动视图的操作,并且没有TableView,因此它没有用。任何建议都会很棒,因为我是新来的…

  func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    if scrollView.panGestureRecognizer.translation(in: scrollView).y < 0 {
        print("down")
    } else {
        print("up")
    }
}

这就是我的tableView代码中的内容

func tableView(_ tableView:UITableView, numberOfRowsInSection section:Int) -> Int {
        return Locations.count
    }

    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        if indexPath.row == self.Posts.count - 4 {

            reloadTable(latmin: self.latmin,latmax: self.latmax,lonmin: self.lonmin,lonmax: self.lonmax,my_id: myID)
            print("Load More")
        }

    }


    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "HomePageTVC", for: indexPath) as! NewCell


   cell.post.text = Posts[indexPath.row]
   cell.fullname.setTitle(FullName[indexPath.row],for: UIControlState.normal)

        return cell
    }

问题答案:

就像@maddy在您的问题评论中说的那样,您可以UITableView使用UIScrollViewDelegate和来检查是否正在滚动,此外,您可以同时使用scrollViewDidScrollscrollViewWillBeginDragging函数来检查其滚动到的方向

// we set a variable to hold the contentOffSet before scroll view scrolls
var lastContentOffset: CGFloat = 0

// this delegate is called when the scrollView (i.e your UITableView) will start scrolling
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    self.lastContentOffset = scrollView.contentOffset.y
}

// while scrolling this delegate is being called so you may now check which direction your scrollView is being scrolled to
func scrollViewDidScroll(_ scrollView: UIScrollView) {
    if self.lastContentOffset < scrollView.contentOffset.y {
        // did move up
    } else if self.lastContentOffset > scrollView.contentOffset.y {
        // did move down
    } else {
        // didn't move
    }
}

此外 :如果您已经对UIViewControllerwith
进行了子类化,UIScrollViewDelegate那么您就不需要对其进行子类化UIViewController
UITableViewDelegate因为UITableViewDelegate它已经是的子类。UIScrollViewDelegate



 类似资料:
  • 问题内容: 假设以下代码在2009年8月22日(星期六)执行 将返回23。我对条件感兴趣的是将返回14(最后一个星期日,而不是下一个星期日)。 是否有与方向相关的日历将推出的任何规则时设置?如果是这样,他们是什么? 问题答案: 它应该始终保持相同(http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html#WEEK_OF_MONT

  • 本文向大家介绍vim 向下滚动,包括了vim 向下滚动的使用技巧和注意事项,需要的朋友参考一下 示例 命令 描述 Ctrl+E 向下滚动一行。 Ctrl+D 向下滚动半屏(可使用该scroll选项配置)。 Ctrl+F 向下滚动全屏。 z+ 在窗口顶部的窗口下方绘制第一行。

  • 我的应用程序中有一个,我想检查一下,用户是否向下滚动了,例如,如果用户向下滚动了我的,我想显示一条消息,“you scrolled down”我在过去3天里一直在尝试这个,我没有得到任何合适的解决方案。我看过很多教程和讨论,没有一个适合我。有人能帮忙吗? 这是我的java代码片段 这是我的xml文件 添加答案后的错误消息 此检查扫描应用程序中的所有调用,并警告此应用程序目标的所有版本上不可用的任何

  • 有没有办法隐藏滚动条,仍然可以使用鼠标或方向键向上滚动? 有人能帮忙吗?

  • 本文向大家介绍vim 向上滚动,包括了vim 向上滚动的使用技巧和注意事项,需要的朋友参考一下 示例 命令 描述 Ctrl+Y 向上滚动一行。 Ctrl+U 向上滚动半个屏幕(可使用该scroll选项配置)。 Ctrl+B 向上滚动全屏。 z^ 在窗口底部的窗口上方绘制第一行。

  • 问题内容: 因此,我正在尝试使用JavaScript 调用函数。但是我想知道是否可以在不使用jQuery的情况下检测滚动方向。如果没有,那么有什么解决方法吗? 我本来只是想放一个“置顶”按钮,但我想避免这种情况。 我现在刚刚尝试使用此代码,但是没有用: 问题答案: 可以通过存储先前的scrollTop值并将其与当前scrollTop值进行比较来检测到它。 JS: