我正在尝试对 UITableView 实现拉动添加交互,就像应用程序 Clear 所做的那样,但没有花哨的 UI 效果 - 只是试图简单地在拖动后向 TableView 添加一个新单元格至少下降了新单元高度的一半。
一切正常,但问题是 UIScrollView 使其在释放拖动后始终弹回到其 contentOffset(-64 和 UINavigationController 标题栏),即使在添加新单元格之后也是如此。
我该如何避免/预防这种情况?我尝试将 setContentOffset 设置为 0,-64,没有动画,但它似乎被忽略了,仍然反弹。
欢迎任何建议!
placeHolderCell 是作为 subview 添加到自身 (UITableViewController) 的 UITableViewCell
override func scrollViewDidEndDragging(scrollView: UIScrollView, willDecelerate decelerate: Bool) {
let delta = abs(Double(scrollView.contentOffset.y)) - abs(Double(initialScrollViewContentOffset))
if delta >= Double(placeHolderCell.frame.height / 2) {
insertNewObject(scrollView)
}
placeHolderCell.removeFromSuperview()
}
func insertNewObject(sender: AnyObject) {
let indexPath = NSIndexPath(forRow: 0, inSection: 0)
objects.insert(NSDate(), atIndex: 0)
UIView.setAnimationsEnabled(false)
tableView.beginUpdates()
tableView.insertRowsAtIndexPaths([indexPath], withRowAnimation: .None)
tableView.endUpdates()
UIView.setAnimationsEnabled(true)
}
最佳答案
我遇到了类似的事情,尝试取消选中(调整 View 插图)所需的 View Controller Nib 或 Storyboard View Controller ,否则粘贴屏幕截图或解释更多。
关于ios - UITableView pull-to-add 交互模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35549885/