Swift-UITableView滚动事件
我想知道如何检测Swift-UITableView滚动事件,uitableview,swift,events,scroll,hide,Uitableview,Swift,Events,Scroll,Hide,我想知道如何检测UITableView是否被滚动(向上或向下)。 当使用self.view.endEditing(true)滚动UITableView时,我想隐藏键盘 提前感谢您可以添加UIScrollViewDelegate。之后,您可以实现scrollViewDidScroll方法。覆盖函数ScrollViewWillendDraging(scrollView:UIScrollView,withVelocity:CGPoint,targetContentOffset:Unsafemeutab
UITableView
是否被滚动(向上或向下)。
当使用self.view.endEditing(true)
滚动UITableView
时,我想隐藏键盘
提前感谢您可以添加
UIScrollViewDelegate
。之后,您可以实现scrollViewDidScroll
方法。覆盖函数ScrollViewWillendDraging(scrollView:UIScrollView,withVelocity:CGPoint,targetContentOffset:UnsafemeutablePointer){
override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
if(velocity.y>0){
NSLog("dragging Up");
}else{
NSLog("dragging Down");
}
}
如果(速度y>0){
NSLog(“拖动”);
}否则{
NSLog(“向下拖动”);
}
}
您可以设置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%准确
说明:滚动停止时将调用ScrollViewDiEndDraging,因此我们保存最后知道的偏移量。之后,我们将其与委托方法scrollViewDidScroll中的当前偏移量进行比较。
UITableView
扩展自UIScrollView
,因此它应该被视为是一个函数,因为OP假设必须实现某个scrollview委托方法以关闭键盘。但作为丹尼尔,有一个更简单的解决方案。这个问题最好用“如何消除滚动上的键盘”来表达,当调用NSLog(“向上拖动”)时,我如何管理tableview@Jamil的高度;它是scrollview的最后一个已知偏移位置,用于与新位置进行比较。它可以让你识别运动。正如在scrollViewDidScroll@Dilip Tiwari中看到的,你能帮我解决一个与这个@Giggsi有关的问题吗?我在tableview滚动@Giggsi时遇到了一个问题。你的问题是什么@Dilip TiwariI有个问题,在我的视图控制器中,我在tableview中的tableviewcell上方拖动了一个视图,其中包含3个文本字段,在tableview上面,我有一个集合视图。我的问题是,当我将整个视图控制器滚动到顶部时,我想隐藏集合视图以及包含这3个文本字段的视图。同时创建一个新的文本字段,并且tableview的位置将刚好在新文本字段的下方,当向下滚动视图控制器时新的文本字段将隐藏,其他内容将以滚动前的相同位置再次显示。@Giggs就像一个符咒。有史以来最好的解决方案!伟大而简单的解决方案你应该成为美国总统。