【问题标题】:How I can reload tableview data after the animation of fade swipeAction completed淡入淡出 swipeAction 的动画完成后如何重新加载 tableview 数据
【发布时间】:2019-01-16 19:15:24
【问题描述】:

我使用 SwipeCellKit 为我的 tableview 执行滑动操作。 我尝试对我的单元格的附件类型进行左滑动检查或 unckech 并且一切正常,但是在我按下检查表视图后立即重新加载数据并且我看不到回滚检查按钮的动画。所以我想问一下这个动画结束后我如何调用重新加载数据。

我有这样的事情:

I have something like this:

但我想要这样的淡入淡出动画

I want this animation

我的代码:

override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath, for orientation: SwipeActionsOrientation) -> [SwipeAction]? {
    var action = super.tableView(tableView, editActionsForRowAt: indexPath, for: orientation) ?? []

    guard orientation == .left else { return action }

    let checkAction = SwipeAction(style: .destructive, title: nil) { action, indexPath in     

        self.completeItem(at: indexPath)

    }
    action.append(checkAction)
    return action

}



private func completeItem(at indexPath: IndexPath){
    if let item = itemArray?[indexPath.row]{

        do{
            try realm.write {
                item.done = !item.done
            }

        }

        catch{

            print( error.localizedDescription)

        }
    }
    tableView.reloadData()

}

【问题讨论】:

标签: ios swift uitableview swipe


【解决方案1】:

为了在选择时隐藏动作,您需要为动作设置 hidesWhenSelected 属性。

checkAction.hidesWhenSelected = true

此外,该示例不会重新加载 tableView。相反,他们使用动画来移除圆点。您需要手动延迟重新加载,直到隐藏动画完成。

属性见第 156 行

动画见第 256 - 273 行 https://github.com/SwipeCellKit/SwipeCellKit/blob/develop/Example/MailExample/MailTableViewController.swift

【讨论】:

  • 我尝试为动画制作第 256 - 273 行之类的东西,但在他们的示例中,我明白了,他们制作了另一个自己的 baloon 类型的 IndicatorView 动画。但是对于我的任务,我使用 tableView 单元格的属性。它是附件类型,我不明白如何为 mu 任务执行此操作。
  • 我相信你仍然可以为 uitableviewcell 制作你的 AccessoriesType。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-28
  • 2011-10-26
  • 1970-01-01
  • 2014-01-20
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多