OStack程序员社区-中国程序员成长平台

标题: ios - 如何覆盖 reloadRowsAtIndexPath? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 16:45
标题: ios - 如何覆盖 reloadRowsAtIndexPath?

我正在尝试覆盖 tableView 单元格的方法 reloadRowAtIndexPath

我想和你重写 cellForRowAtIndexPath 时一样:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        if(isUserTalking(indexPath))
        {
            return userMessageCell(indexPath)
        }
        else
        {
            if(isNotUserFirstMessage(indexPath))
            {
                return notUserFirstMessageCell(indexPath)
            }
            else
            {
                return notUserNotFirstMessageCell(indexPath)
            }
        }

    }

这样:

func tableView(tableView: UITableView, reloadRowsAtIndexPaths indexPath: NSIndexPath) -> UITableViewCell
    {
        print("job")
            if(isNotUserFirstMessage(indexPath))
            {
                return notUserFirstMessageCell(indexPath, showImage: false)
            }
            else
            {
                return notUserNotFirstMessageCell(indexPath, showImage: false)
            }
    }

但是当我使用 self.myTable.reloadRowsAtIndexPath 它从不调用覆盖版本。

你知道怎么解决吗?



Best Answer-推荐答案


reloadRowsAtIndexPaths 并不是为了这个。您可能想使用 tableView(_:willDisplayCell:forRowAtIndexPath 代替。例如:

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
    print("job")
    if isNotUserFirstMessage(indexPath) {
        configureNotUserFirstMessageCell(cell, showImage: false)
    } else {
        configureNotUserNotFirstMessageCell(cell, showImage: false)
    }
}

关于ios - 如何覆盖 reloadRowsAtIndexPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37886353/






欢迎光临 OStack程序员社区-中国程序员成长平台 (http://ostack.cn/) Powered by Discuz! X3.4