我在滚动时更改了 UITableViewCell 不透明度,但用户交互有一两秒的延迟。我怎样才能解决这个问题?

I have my UITableViewCell Opacity Change on Scroll, but there is a second or two delay on user interaction. How can I fix this?

试图将不透明度设置为 0,但是当显示单元格时,将其设置为 1。所以当我滚动浏览帖子时,我有一种淡入淡出的感觉。我得到了我想要的外观,但是当我滚动时,我有一两秒钟无法与 tableview 交互。

我也是 Swift 的新人,所以任何帮助都会很棒!!

这是我的代码:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? PostCell {

        cell.contentView.alpha = 0

        cell.updateUI(postData: posts[indexPath.row])

        return cell
    } else {
        return UITableViewCell()
    }

}

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    UIView.animate(withDuration: 0.4) {
        cell.contentView.alpha = 1
    }
}

UIView.animate 将默认阻止用户交互。您可以尝试添加 .allowUserInteraction 选项。

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    UIView.animate(withDuration: 0.4, delay: 0, options: UIViewAnimationOptions.allowUserInteraction, animations: {
        cell.contentView.alpha = 1
    }, completion: nil)
}