我在滚动时更改了 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)
}
试图将不透明度设置为 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)
}