如何从UITableViewController中的UITableViewCell接收TouchesBegan,以便我知道用户何时接触某个单元格?
答案 0 :(得分:3)
当您触摸一个单元格时,它会突出显示;尝试覆盖setHighlighted:
的子类中的UITableViewCell
,以便在更改为YES(用户触摸)或NO(用户关闭)时调整外观。
(覆盖touchesBegan:withEvent:
也会有效,但更容易使用setHighlighted:
以便在您不再触摸时捕获;否则您需要覆盖{{1} }和touchesEnded:withEvent:
)。
答案 1 :(得分:1)
如果您正在寻找在用户点按某个单元格时触发的事件,但在正式选择之前触发该事件,则会有UITableViewDelegate
方法:
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
来自文档:
在用户触摸一行然后抬起它们之前,不会调用此方法 手指;直到那时才会选择该行,尽管它是 在触地得分时突出显示。您可以使用 UITableViewCellSelectionStyleNone禁用外观 触摸时细胞突出显示。表时不调用此方法 视图处于编辑模式(即表的编辑属性) 视图设置为YES),除非表视图允许选择 编辑(即,allowSelectionDuringEditing属性) 表格视图设置为YES)。
修改强>
为了实现您所寻求的行为,我相信您需要继承UITableViewCell
并实施该方法
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
您可以在UIResponder
class reference中找到有关事件处理的更多信息,这是所有UIViews的子类。