【发布时间】:2016-09-14 04:57:47
【问题描述】:
我正在编写程序以在滚动 UITableView 时移动名为“myView”的 UIView,请看下图:
“myView”会随着tableview的contentoffset的变化而改变它的'y-coordinate',我写的主要代码是:
func scrollViewDidScroll(scrollView: UIScrollView) {
let off_y = scrollView.contentOffset.y
let new_y = originalMyViewY - off_y
if new_y <= 0 {
print("bad new_y : \(new_y)")
return
}
else {
print("right new_y: \(new_y)")
}
var frame = self.myView.frame
frame.origin.y = new_y
self.myView.frame = frame
}
当我以正常速度滚动 tableview 时,这非常有效。但是,如果我非常快速地滚动 tableview,'myview' 将在到达顶部边缘之前停止。这是日志显示的内容:
right new_y: 56.0
bad new_y : -92.5
bad new_y : -153.5
bad new_y : -206.0
似乎委托方法scrollViewDidScroll 没有捕捉到导致值跳转的每一个滚动移动。
我想知道原因和解决方法,谢谢!
【问题讨论】:
标签: ios uitableview uiscrollview