我正在学习如何使用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和来检查是否正在滚动,此外,您可以同时使用scrollViewDidScroll和scrollViewWillBeginDragging函数来检查其滚动到的方向
UITableView
UIScrollViewDelegate
scrollViewDidScroll
scrollViewWillBeginDragging
// 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
UIViewController
UITableViewDelegate