我有一个问题 UITableView's
didSelectRowAtIndexPath
。
我的表已设置好,因此当我选择行时,它将初始化一个新的视图控制器并将其推送。
我第一次点击表中的任何行时,不会调用该方法。一旦我选择了另一行,它就会开始正常工作。
我已通过在上设置断点来验证这一点didSelectRowAtIndexPath
。当添加一个NSLog
方法中我看到当我选择最后推送新视图控制器的第二行时,我看到两个日志语句同时出现在控制台中。
有什么建议么?
我有一个问题 UITableView's
didSelectRowAtIndexPath
。
我的表已设置好,因此当我选择行时,它将初始化一个新的视图控制器并将其推送。
我第一次点击表中的任何行时,不会调用该方法。一旦我选择了另一行,它就会开始正常工作。
我已通过在上设置断点来验证这一点didSelectRowAtIndexPath
。当添加一个NSLog
方法中我看到当我选择最后推送新视图控制器的第二行时,我看到两个日志语句同时出现在控制台中。
有什么建议么?
Answers:
您是否偶然输入了De selectRowAtIndexPath吗?
我遇到以下问题:
就我而言,我的错误是Show Selection on Touch
在Interface Builder 中检查的。您可以在IB中取消选中它:
希望可以帮助某人
我辩论甚至发布了这个答案,因为我认为恒星会对齐以使其表现出来。
我正在解决此问题,并检查了其他解决方案。在我的表格视图中,第一次点击时并没有处理表格的最后一行。它突出显示它,但是didSelectRowAtIndexPath
没有被调用。其他所有行都工作正常。但是,如果我打开tableview弹跳,那么似乎可以解决问题(但随后您必须处理tableview弹跳)。
已为显示该问题的单元格(ios9)设置了UITableViewCellSelectionStyleNone。
我最后打电话了
[tableView deselectRowAtIndexPath:indexPath animated:NO];
第一件事
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
这是不一样的,但已经足够了。让我想知道ios10会带来哪种表损坏。
setSelected
但是当用户握住该单元时,出现的选择是不可接受的
当您在tableView中使用手势识别器时,也会发生此问题,在这种情况下,您无需删除它们,只需确保您的手势属性cancelsTouchesInView = false
是一个布尔值,该值会影响在触摸时是否向视图传递触摸手势被识别。
SWIFT 3
在我的情况下,没有其他答案有效,对我来说固定的是:
tableView.delaysContentTouches = false
在我的情况下,我有一个带有手势识别器的UITableView节标题。轻敲标题时,它应在该部分中插入几行,并为插入动画(例如,展开/折叠部分)。第一次扩展和点击时,didSelectRow委托方法未触发。对于进一步的点击和展开/折叠操作,它正在按预期方式工作。
通过@Ayoub Nouri的每个答案,我将cancelsTouchesInView设置为false,从而解决了该问题。tapGestureRecognizer?.cancelsTouchesInView = false
tableView:didSelectRowAtIndexPath:
吗?