我有一个拖放开关语句,允许用户抓取一个单元格,代码无缝地创建它的快照,然后用户可以将快照拖动到一个新位置。繁荣!细胞移动了。
当行/单元格的数量超过iPhone的屏幕时,我添加了代码以允许用户向上/向下拖动表格。
if locationOnScreen.y < 200 && indexPath!.row > 1 {
let indexPath = NSIndexPath(forRow: indexPath!.row-1, inSection: 0)
tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Top, animated: false)
} else if locationOnScreen.y > 550 && indexPath!.row < listCount {
let indexPath = NSIndexPath(forRow: indexPath!.row+1, inSection: 0)
tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Bottom, animated: false)
}
注意:单元格的高度不同,有些占据屏幕高度的一半,其他则小得多。
问题
此代码有效,但它可以快速上/下快速查看表格。它非常适合快速到达桌面的顶部或底部,但不适合逐渐滚动。有什么想法吗?
有没有办法让拖动的单元格靠近顶部,表格每秒以固定的速率向上滚动?如果靠近底部,会以每秒固定的速率向下滚动吗?
答案 0 :(得分:0)
尝试传递animated: true
。它应滚动到带动画的单元格
if locationOnScreen.y < 200 && indexPath!.row > 1 {
let indexPath = NSIndexPath(forRow: indexPath!.row-1, inSection: 0)
tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Top, animated: true)
} else if locationOnScreen.y > 550 && indexPath!.row < listCount {
let indexPath = NSIndexPath(forRow: indexPath!.row+1, inSection: 0)
tableView.scrollToRowAtIndexPath(indexPath, atScrollPosition: UITableViewScrollPosition.Bottom, animated: true)
}