在索引路径调用滚动到顶部表视图插入行?

Posted

技术标签:

【中文标题】在索引路径调用滚动到顶部表视图插入行?【英文标题】:insert row at index path call scroll to top table view? 【发布时间】:2016-03-10 14:32:56 【问题描述】:

当我在 uitableview 的索引路径处插入行时,我的 tableview 滚动到顶部?为什么?

let indexPathForCell = NSIndexPath(forRow: 5, inSection: 1)
tableView.beginUpdates()
tableView.insertRowsAtIndexPaths([indexPathForCell], withRowAnimation: .Automatic)
tableView.endUpdates()

在添加单元格期间调用的所有代码

func buttonDidPressed(button: CheckMarkView) 
    let indexPathForCell = NSIndexPath(forRow: 5, inSection: 1)
    buttonPressedTag = button.tag
    for checkMark in buttons 
        if checkMark.tag == buttonPressedTag 
            if buttonPressedTag == 4 
                checkMark.show()
                checkMark.userInteractionEnabled = false
                cellWithCategories["Recomendation"]?.append("slideCell")

                tableView.beginUpdates()
                tableView.insertRowsAtIndexPaths([indexPathForCell], withRowAnimation: .None)
                tableView.endUpdates()
            
            checkMark.show()
         else 
            if (tableView.cellForRowAtIndexPath(indexPathForCell) != nil) 
                cellWithCategories["Recomendation"]?.removeLast()
                tableView.beginUpdates()
                tableView.deleteRowsAtIndexPaths([indexPathForCell], withRowAnimation: .None)
                tableView.endUpdates()
            
            checkMark.hide()
            checkMark.userInteractionEnabled = true
        
    

行数代码:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    let sectionKey = keysForSectionTableView[section]
    let numberOfRows = cellWithCategories[sectionKey]

    return (numberOfRows?.count)!

【问题讨论】:

试试withRowAnimation: .Middle @sken3r.MI 它不起作用:( 也许你有更多的代码来重新加载数据 你是怎么解决这个问题的?? @nickheck 我有同样的问题,我找到了解决方案。 The Solution 【参考方案1】:

我没有看到任何可以让您的表格视图滚动到顶部的代码。 但是您可以尝试将动画更改为无。如果不起作用,那么肯定有其他代码导致了这个问题。

let indexPathForCell = NSIndexPath(forRow: 5, inSection: 1)
tableView.beginUpdates()
tableView.insertRowsAtIndexPaths([indexPathForCell], withRowAnimation: .None)
tableView.endUpdates()

【讨论】:

很遗憾这不起作用,表格仍然滚动到顶部

以上是关于在索引路径调用滚动到顶部表视图插入行?的主要内容,如果未能解决你的问题,请参考以下文章

滚动到顶部时在表格视图的开头动态添加行

带有标题视图的 UITableView 不滚动到顶部

滚动表格视图时应用程序崩溃

分组表视图中单元格的索引路径

Swift 调用 setNavigationBarHidden 但视图不会移到顶部

UITableView 在插入更多行时滚动到顶部