我有一个带有动态填充行的UITableView,但顶部还有一个包含一个特殊单元格(具有不同标识符)的部分,它始终是相同的。
我已经为这个单元格添加了两个按钮,但它们确实有效,但是它们的反应很差。也就是说,突出显示仅在约0.25秒后发生。
我正在使用以下略微自定义的按钮:
import UIKit
class HighlightingButton: UIButton {
override var isHighlighted: Bool {
didSet {
if isHighlighted {
backgroundColor = UIColor.lightGray
} else {
backgroundColor = UIColor.white
}
}
}
}
用户获得他们点击按钮的明确反馈非常重要。然而,由于缓慢突出显示这并不令人满意,尽管事件似乎很快被触发(通过打印一些输出)。
在普通视图中,此HighlightingButton按预期工作,突出显示闪烁的速度尽可能快。
在UITableViewCell的事件处理中是否存在导致这种缓慢的事情?
更新
我创建了一个minimalistic example project来演示这个问题。 没有任何GestureRecognizers,仍然有这个非常明显的延迟。
答案 0 :(得分:3)
查看UIScrollView
的{{3}}属性。
我通过在tableView及其所有false
子视图上将其设置为scrollview
来解决您的问题。
因此,您应该添加tableView
IBOutlet并覆盖viewDidLoad
方法,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
tableView.delaysContentTouches = false
for case let subview as UIScrollView in tableView.subviews {
subview.delaysContentTouches = false
}
}