UITableView 中的突出显示按钮反应缓慢
Posted
技术标签:
【中文标题】UITableView 中的突出显示按钮反应缓慢【英文标题】:Highlighting button inside UITableView reacts slowly 【发布时间】:2016-10-21 16:53:51 【问题描述】:我有一个带有动态填充行的 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,仍然有这个非常明显的延迟。
【问题讨论】:
问题可能与按钮无关,也与 UITableViewCell 类无关。我已经在单元格上尝试了您的按钮,并且没有任何问题。也许您在该单元格或其他任何地方有一个长按手势,我们应该注意这一点? 我创建了一个简单的示例项目来演示这个问题。所以它也发生在一个非常简单的环境中,没有任何周围的干扰。如果您有时间看一看,我将不胜感激。 【参考方案1】:查看UIScrollView
的delaysContentTouches 属性。
我通过在 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
【讨论】:
其实这个问题是重复的:***.com/q/22924817/1689376 完美。非常感谢你!抱歉重复了,我没有找到那个问题。以上是关于UITableView 中的突出显示按钮反应缓慢的主要内容,如果未能解决你的问题,请参考以下文章