问题描述
我正在学习如何使用TableViews,我想知道如何判断tableView是向上还是向下滚动?我一直在尝试各种各样的东西,比如这个但是没有用,因为下面是滚动视图,我有一个TableView。任何建议都会很棒,因为我是新手......
I am learning how to work with TableViews and I am wondering how can I figure out if the tableView is scrolling up or down ? I been trying various things such as this but it hasn't worked granted that below is for a scrollview and I have a TableView . Any suggestions would be great as I am new at this ...
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
if scrollView.panGestureRecognizer.translation(in: scrollView).y < 0 {
print("down")
} else {
print("up")
}
}
这是我在tableView代码中的内容
This is what I have in my tableView code
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
}
推荐答案
UIScrollViewDelegate UITableView 是否在滚动>还有更多你可以通过使用 scrollViewDidScroll
和 scrollViewWillBeginDragging
函数
Like @maddy said in the comment of your question, you can check if your UITableView
is scrolling by using the UIScrollViewDelegate
and further more you could check which direction it scrolls to by using both scrollViewDidScroll
and scrollViewWillBeginDragging
functions
// 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) {
// moved to top
} else if (self.lastContentOffset > scrollView.contentOffset.y) {
// moved to bottom
} else {
// didn't move
}
}
此外:您不需要将 UIViewController
继承为 UIScrollViewDelegate
如果你'已经使用 UITableViewDelegate
将您的 UIViewController
子类化,因为 UITableViewDelegate
已经 UIScrollViewDelegate的子类
Furthermore: You don't need to subclass your UIViewController
with UIScrollViewDelegate
if you've already subclassed your UIViewController
with UITableViewDelegate
because UITableViewDelegate
is already a subclass of UIScrollViewDelegate
这篇关于iOS tableview如何检查它是否向上或向下滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!