Swift - UITableView 滚动事件
Swift - UITableView scroll event
我想知道如何检测 UITableView
是否滚动(向上或向下)。
当 UITableView
滚动 self.view.endEditing(true)
时,我想隐藏键盘。
提前致谢
您可以添加 UIScrollViewDelegate
。之后你可以实现 scrollViewDidScroll
方法。
override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if(velocity.y>0){
NSLog("dragging Up");
}else{
NSLog("dragging Down");
}
}
您可以设置 属性 UITable 视图 (XCode 7+)
在情节提要中:
在代码中:
tableView.keyboardDismissMode = .onDrag
我相信完整的解决方案如下:
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)
}
}
之前的答案并非 100% 准确。
说明:滚动停止时将调用 scrollViewDidEndDragging,因此我们保存最后知道的偏移量。之后我们将它与委托方法 scrollViewDidScroll.
中的当前偏移量进行比较
我想知道如何检测 UITableView
是否滚动(向上或向下)。
当 UITableView
滚动 self.view.endEditing(true)
时,我想隐藏键盘。
提前致谢
您可以添加 UIScrollViewDelegate
。之后你可以实现 scrollViewDidScroll
方法。
override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if(velocity.y>0){
NSLog("dragging Up");
}else{
NSLog("dragging Down");
}
}
您可以设置 属性 UITable 视图 (XCode 7+)
在情节提要中:
在代码中:
tableView.keyboardDismissMode = .onDrag
我相信完整的解决方案如下:
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)
}
}
之前的答案并非 100% 准确。