当在其上实现闪烁动画时,UITableViewCell 不可点击
UITableViewCell not clickable when Blinking animation is implemented on it
当实现闪烁动画时,UITableViewCell 没有执行任何操作,它开始闪烁,正常但不可点击或滑动。我已经尝试了一些解决方案但无法修复它。代码如下。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
cell.backgroundColor = UIColor.colorWithHexString(hexStr: "#FDFAEB")
cell.blink()
return cell
}
动画扩展代码:
extension UIView {
func blink() {
self.alpha = 0.5;
UIView.animate(withDuration: 0.7, //Time duration you want,
delay: 0.0,
options: [.curveEaseInOut, .autoreverse, .repeat],
animations: { [weak self] in self?.alpha = 1.0 },
completion: { [weak self] _ in self?.alpha = 0.8 })
}
}
请告诉我,这是什么原因,我该如何解决?
默认情况下,在动画期间禁用用户交互。您需要将 .allowUserInteraction
选项添加到您的选项集中。
(请注意,如果您正在为视图的位置设置动画,用户将无法在视图移动时点击它。在幕后,一旦动画开始,视图就会跳转到其目标位置.它似乎只是在屏幕上移动。如果你想在视图在屏幕上移动时处理点击,那就要复杂得多。)
当实现闪烁动画时,UITableViewCell 没有执行任何操作,它开始闪烁,正常但不可点击或滑动。我已经尝试了一些解决方案但无法修复它。代码如下。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
cell.backgroundColor = UIColor.colorWithHexString(hexStr: "#FDFAEB")
cell.blink()
return cell
}
动画扩展代码:
extension UIView {
func blink() {
self.alpha = 0.5;
UIView.animate(withDuration: 0.7, //Time duration you want,
delay: 0.0,
options: [.curveEaseInOut, .autoreverse, .repeat],
animations: { [weak self] in self?.alpha = 1.0 },
completion: { [weak self] _ in self?.alpha = 0.8 })
}
}
请告诉我,这是什么原因,我该如何解决?
默认情况下,在动画期间禁用用户交互。您需要将 .allowUserInteraction
选项添加到您的选项集中。
(请注意,如果您正在为视图的位置设置动画,用户将无法在视图移动时点击它。在幕后,一旦动画开始,视图就会跳转到其目标位置.它似乎只是在屏幕上移动。如果你想在视图在屏幕上移动时处理点击,那就要复杂得多。)