Как обновить данные области при быстром перемещении данных? - PullRequest
2 голосов
/ 02 августа 2020

При перемещении позиции ячейки в табличном представлении данные области также обновляются.

Я сделал следующее, как и на Android, но это не работает. Вы можете мне помочь?

func updateMoveData(title:String, listId:Int, id:Int, icon:Int)
{
    let realm = try! Realm()
    
    let getDbData = realm.object(ofType: MainListRealm.self, forPrimaryKey: id)

    try! realm.write {
        getDbData?.title = title
        getDbData?.listId = listId
        getDbData?.icon = icon
    }
}

func tableView(_ tableView: UITableView, moveRowAt fromIndexPath: IndexPath, to: IndexPath) {
    
    let tempstart: Int = to.row
    let tempend: Int = fromIndexPath.row
    let from: Int = to.row
    let too: Int = fromIndexPath.row
    
    if from < too {

        updateMoveData(title: mDataSet![tempend].title, listId: mDataSet![tempend].listId, id: mDataSet![tempstart].id, icon: mDataSet![tempend].icon)
        for i in from...too-1 {
            //print("i = \(i)")
            updateMoveData(title: mDataSet![i].title, listId: mDataSet![i].listId, id: mDataSet![i+1].id, icon: mDataSet![i].icon)
        }

    } else if from > too {

        updateMoveData(title: mDataSet![tempend].title, listId: mDataSet![tempend].listId, id: mDataSet![tempstart].id, icon: mDataSet![tempend].icon)
        //for i in from...too+1 {
        for i in (too+1...from).reversed() {
            //print("i = \(i)")
             updateMoveData(title: mDataSet![i].title, listId: mDataSet![i].listId, id: mDataSet![i-1].id, icon: mDataSet![i].icon)
        }
    }
    
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...