[英]Swift - UITableView scroll event
I was wondering how to detect if the UITableView
is scrolled (up or down). 我想知道如何检测
UITableView
是否滚动(向上或向下)。 I want to hide the keyboard when the UITableView
is scrolled with self.view.endEditing(true)
. 我想在使用
self.view.endEditing(true)
滚动UITableView
时隐藏键盘。
Thanks in advance 提前致谢
You can set property of UITable view (XCode 7+) 您可以设置UITable视图的属性(XCode 7+)
In Storyboard: 在故事板中:
in Code: 代码:
tableView.keyboardDismissMode = .onDrag
You can add UIScrollViewDelegate
. 您可以添加
UIScrollViewDelegate
。 After that you can implement scrollViewDidScroll
method. 之后,您可以实现
scrollViewDidScroll
方法。
I believe the complete solution would be the following: 我相信完整的解决方案如下:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView == feedTableView {
let contentOffset = scrollView.contentOffset.y
print("contentOffset: ", contentOffset)
if (contentOffset > self.lastKnowContentOfsset) {
print("scrolling Down")
print("dragging Up")
} else {
print("scrolling Up")
print("dragging Down")
}
}
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
if scrollView == feedTableView {
self.lastKnowContentOfsset = scrollView.contentOffset.y
print("lastKnowContentOfsset: ", scrollView.contentOffset.y)
}
}
The previous answers weren't 100% accurate. 以前的答案不是100%准确。
override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if(velocity.y>0){
NSLog("dragging Up");
}else{
NSLog("dragging Down");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.