Ios 如何在动画中更改UITableView标签textColor两次?

Ios 如何在动画中更改UITableView标签textColor两次?,ios,swift,uitableview,uiviewanimation,Ios,Swift,Uitableview,Uiviewanimation,我试图突出显示表视图中的文本,以表明它已被复制。在动画代码中,我先将其更改为不同的颜色,然后再将其更改为黑色。但当我运行它时,它在第一次更改后就会卡住。我使用UIColor.green进行测试。此代码运行后,颜色保持为绿色 有人能看出这有什么问题吗 let allCells: ((UITableViewCell) -> Void) -> Void = { handler in if let paths = self.savedTempTable.indexPathsForVi

我试图突出显示表视图中的文本,以表明它已被复制。在动画代码中,我先将其更改为不同的颜色,然后再将其更改为黑色。但当我运行它时,它在第一次更改后就会卡住。我使用UIColor.green进行测试。此代码运行后,颜色保持为绿色

有人能看出这有什么问题吗

let allCells: ((UITableViewCell) -> Void) -> Void = { handler in
    if let paths = self.savedTempTable.indexPathsForVisibleRows {
        paths.compactMap { self.savedTempTable.cellForRow(at: $0) }.forEach { cell in
            handler(cell)
        }
        self.savedTempTable.reloadRows(at: paths, with: .none)
    }
}

UIView.animate(withDuration: 0.5,
               animations: { allCells { cell in cell.textLabel?.textColor = .green } },
               completion: { _ in
                UIView.animate(withDuration: 0.5, animations: { allCells { cell in cell.textLabel?.textColor = .black } } )
}
)

要设置
textColor
的动画,您需要使用

结果

更多细节,你可以查看我的样品


要设置
textColor
的动画,您需要使用

结果

更多细节,你可以查看我的样品


谢谢你的建议。我试过了,但问题是,我从来没有看到字体变成绿色。它只是保持不变。这是在iPhone XAs上的模拟器中,我知道,它应该可以工作。为了获得更多细节,我添加了一个示例项目。你可以查一下。确保你在主队列中调用它。我尝试了你的应用程序,每次我点击按钮,它都能工作。谢谢你的努力。但我的应用程序仍然无法运行。它可能与UITableView有关。@MarkAurelius我用UITableView试过,它也能用。我认为所有单元格都有问题。您应该尝试使用for循环设置可见单元格的动画。也许会有用的。你用什么代码在手机上调用它?我不认为allCells的功能是个问题。我在handle(cell)之前添加了这个代码,每个单元格都会调用它:print(“Handling”,cell.textlab?.text??”),谢谢你的建议。我试过了,但问题是,我从来没有看到字体变成绿色。它只是保持不变。这是在iPhone XAs上的模拟器中,我知道,它应该可以工作。为了获得更多细节,我添加了一个示例项目。你可以查一下。确保你在主队列中调用它。我尝试了你的应用程序,每次我点击按钮,它都能工作。谢谢你的努力。但我的应用程序仍然无法运行。它可能与UITableView有关。@MarkAurelius我用UITableView试过,它也能用。我认为所有单元格都有问题。您应该尝试使用for循环设置可见单元格的动画。也许会有用的。你用什么代码在手机上调用它?我不认为allCells的功能是个问题。我在handle(cell)之前添加了这段代码,每个单元格都会调用它:print(“Handling”,cell.textlab?.text??)
for cell in tableView.visibleCells {
  UIView.transition(with: cell, duration: 0.5, options: .transitionCrossDissolve, animations: {
    cell.textLabel?.textColor = .green
  }) { (_) in
    UIView.transition(with: cell, duration: 0.5, options: .transitionCrossDissolve, animations: {
      cell.textLabel?.textColor = .black
    }, completion: nil)
  }
}