当按钮位于 UITableViewCell 上时,为啥 UIButton showsTouchWhenHighlighted 不起作用?

Posted

技术标签:

【中文标题】当按钮位于 UITableViewCell 上时,为啥 UIButton showsTouchWhenHighlighted 不起作用?【英文标题】:Why doesn't UIButton showsTouchWhenHighlighted work when the button is on a UITableViewCell?当按钮位于 UITableViewCell 上时,为什么 UIButton showsTouchWhenHighlighted 不起作用? 【发布时间】:2013-02-07 17:04:50 【问题描述】:

我将UIButton 放在UITableViewCell 上,并将其showsTouchWhenHighlighted 属性设置为YES。单元格的选择样式为UITableViewCellSelectionStyleNone。我有一个选择器,当点击按钮并且工作正常时,它会被调用,因此按钮可以正常获取触摸事件。但是,按钮在触摸时不显示高亮效果。

当我将此按钮放在UIView 上时,高亮效果会起作用。

当按钮放在单元格上时,我怎样才能使它工作?

【问题讨论】:

【参考方案1】:

您是将按钮添加到单元格还是 cell.contentView? contentView 属性的行为更像是一个常规的 UIView,这可能会解决您的问题。

【讨论】:

是的,我正在将它添加到 contentView。【参考方案2】:

您需要在 Table View 上将 'delaysContentTouches' 设置为 NO

【讨论】:

以上是关于当按钮位于 UITableViewCell 上时,为啥 UIButton showsTouchWhenHighlighted 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

鼠标悬停事件的JS问题以显示额外的按钮

使用自定义 uitableViewCell 按下回车键或单击 uitableView 时隐藏键盘

当鼠标光标位于属于面板的组合框上时如何触发面板滚动事件

当文本字段位于 uitableviewcell 中时,不调用 touchesBegan

当RecyclerView位于对话框上时,不显示分隔符

当鼠标位于材质表中的一行上时,突出显示