触摸 UITableViewCell 中的 UIButton 无法滚动表格
Posted
技术标签:
【中文标题】触摸 UITableViewCell 中的 UIButton 无法滚动表格【英文标题】:Touch on UIButton in a UITableViewCell cannot scroll the table 【发布时间】:2011-12-04 22:47:14 【问题描述】:我需要在UITableViewCell
中添加一个UIButton
,一切正常,除了当我触摸按钮内部并移动手指时,表格不会滚动。
我尝试继承 UIButton
并在 touchesMoved: 方法中向 self.nextResponder
发送相同的消息,或者调用 touchesCancelled 并希望它将触摸事件传递给下一个响应者,它们都不起作用。
有什么好的方法可以解决这个问题吗?目前我在UITableViewCell
之上添加一个UIView
,并手动检测触摸事件,分别将结果传递给按钮或单元格的其余部分,但这有点脏。
【问题讨论】:
【参考方案1】:您可以尝试将UITableView
的delaysContentTouches
属性设置为YES
。
此外,您可以将 canCancelContentTouches
设置为 YES
。
如果该属性的值为NO,则滚动视图不滚动 内容视图开始跟踪后,无论手指移动如何。
来源:UIScrollView Class Reference
试试:
_yourTableView.delaysContentTouches = YES;
_yourTableView.canCancelContentTouches = YES;
【讨论】:
【参考方案2】:最好的方法是制作一个自定义单元格并整齐地完成您的工作。
查看Apple docs
【讨论】:
这只是一个文档链接。它不提供任何反馈或提示。 @reecon:一个建议:只要阅读文档,您就会明白为什么它会成为答案 我读过。我还阅读了所有链接的文件。在 UITableViewCell 中放置一个 UIButton 没有任何意义。以上是关于触摸 UITableViewCell 中的 UIButton 无法滚动表格的主要内容,如果未能解决你的问题,请参考以下文章
在复合 UIView 中的触摸事件上突出显示 UITableViewCell
如何从 UITableViewCell 中的自定义 UIButton 中删除触摸延迟
我希望 UITableViewCell 中的 UItextField 仅在单元格触摸时成为第一响应者