获取特定的索引路径以将值重新加载行

问题描述 投票:0回答:1

现在,我正在使用此代码来更新用户的在线状态。每次在线状态发生变化时,我的整个TableView都会重新加载:

    // Get and update the actual online stats for the users
    UserApi.shared.getUserOnlineStatus { (onlineStatus) in
        if let user = self.users.first(where: {$0.uid == onlineStatus.keys.first}) {
            let values = onlineStatus.values.first as? Array<Any>
            let onlineStatus = values?[0]
            user.onlineStatus = onlineStatus as? Bool
            }
        self.tableViewUsers.reloadData()
        }
    }

我不是专家,但是我觉得我应该只重新加载受影响的行。

我如何获得特定的IndexPath为

self.users.first(其中:{$ 0.uid == onlineStatus.keys.first})]]

,所以我可以重新加载行?

编辑,工作代码:

    // Get and update the actual online stats for the users
    UserApi.shared.getUserOnlineStatus { (onlineStatus) in

        if let user = self.users.first(where: {$0.uid == onlineStatus.keys.first}) {
            let values = onlineStatus.values.first as? Array<Any>
            let onlineStatus = values?[0]
            user.onlineStatus = onlineStatus as? Bool
            }

        if let index = self.users.firstIndex(where: {$0.uid == onlineStatus.keys.first}) {
            self.tableViewUsers.reloadRows(at: [IndexPath(row: index, section: 0)], with: .none)
        }

        self.tableViewUsers.reloadData()
        //let indexPath = IndexPath(row: 6, section: 0)
        //self.tableViewUsers.reloadRows(at: [indexPath], with: .fade)
        }
    }

现在,我正在使用此代码来更新用户的在线状态。每次在线状态发生变化时,我的整个TableView都会重新加载://获取并更新...

swift xcode tableview
1个回答
2
投票

尝试,


0
投票

尝试,

© www.soinside.com 2019 - 2024. All rights reserved.