今天在写代码的时候,我自定义了一个tableviewcell,然后在cell上放了一个button,结果,我cell上的button点击事件,有响应,但是didSelectRowAtIndexPath无响应,最后经过检查发现,原来是我之前在tableview的superview上,加了一个tap手势,导致该手势与cell的点击事件冲突了,所以didSelectRowAtIndexPath无响应。我把tap手势拿掉了,就解决了。
然后总结一下,导致cell的点击事件无响应的几个主要原因。
1.tableview的delegate没有设置好。
2.tableview可能是被其他控件盖住了。(我cell上的button都能响应,所以不会是被东西盖住,因此排除了这个)
3.手势与tableview点击事件冲突,有些IOS版本只能触发手势,有些需要长按才能触发didSelectRowAtIndexPath。
然后总结一下,导致cell的点击事件无响应的几个主要原因。
1.tableview的delegate没有设置好。
2.tableview可能是被其他控件盖住了。(我cell上的button都能响应,所以不会是被东西盖住,因此排除了这个)
3.手势与tableview点击事件冲突,有些IOS版本只能触发手势,有些需要长按才能触发didSelectRowAtIndexPath。
最后再说一下,今天下午遇到的一个小问题。我的数据库是用SQL写的,然后在写update的时候,SQL语句没问题,而且,执行完之后,打印的结果也是执行成功了,但是我分别打印了更新前,和更新后的数据,发现,数据并没有更新。最后检查发现,原来是我的一个变量,存的是大写字母,更新的时候传的参数给的是小写字母,所以这也算是一个SQL的bug吧,明明我传的参数有问题,没法跟数据库中的参数匹配,它还是提醒我更新成功了。希望大家以后都注意下。最后附上我update的SQL语句吧。