Fre*_*uid 4 uitableview ios swift
我有一个带有动态填充行的 UITableView,但顶部还有一个部分,其中包含一个始终相同的特殊单元格(具有不同的标识符)。
我在这个单元格中添加了两个按钮,它们确实可以工作,但反应很差。也就是说,大约0.25秒后才会出现突出显示。
我正在使用以下稍微定制的按钮:
import UIKit
class HighlightingButton: UIButton {
override var isHighlighted: Bool {
didSet {
if isHighlighted {
backgroundColor = UIColor.lightGray
} else {
backgroundColor = UIColor.white
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
用户获得点击按钮的清晰反馈非常重要。然而,由于缓慢的突出显示,这并不令人满意,尽管事件似乎被快速触发(通过打印一些输出来判断)。
在普通视图中,此突出显示按钮按预期工作,并且突出显示会随着我的点击而快速闪烁。
UITableViewCell 的事件处理中是否存在导致这种缓慢的原因?
更新
我创建了一个简约的示例项目来演示该问题。没有任何手势识别器,但仍然存在非常明显的延迟。
看一下 的delaysContentTouches属性UIScrollView。我通过将其设置为falsetableView 及其所有子scrollview视图来解决您的问题。
所以你应该只添加一个tableViewIBOutlet 并重写viewDidLoad方法,如下所示:
override func viewDidLoad() {
super.viewDidLoad()
tableView.delaysContentTouches = false
for case let subview as UIScrollView in tableView.subviews {
subview.delaysContentTouches = false
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
794 次 |
| 最近记录: |