如果第一个item放置一个PushButton 在listview的监听中不触发click事件,其它事件可以触发 ,已经设置了button不吞噬事件, 从第二个开始就正常了,看一下是bug吗?
又测试了一下,不是pushbutton的问题,应该是listview的问题, 如果把listview直接放到layer或sprite上是没问题的, 我这个情况是 c是一个listview, b是scale9sprite, a是scale9sprite c在b上, b在a上,就出现了这种情况,不管换pushbutton还是label,image ,只要是第一个元素都没响应click事件
ps:listView:isItemInViewRect(1) 只要是click事件, 都是false , 其它情况会同时触发2次 监听, 一次是true,一次false, 其它位置也是会触发2次, 但是第一个位置click只触发一次
感谢楼主反馈,我们检查一下代码
如果要scale9sprite 上加孩子需要设置ZOrder>2 看是不是这个问题导致的。
— Begin quote from ____
引用第3楼yangtao19cs于2014-09-22 10:05发表的 :
如果要scale9sprite 上加孩子需要设置ZOrder>2 看是不是这个问题导致的。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=231412&pid=1060494
— End quote
我设的是10,小于2的话显示有问题,这个应该是scale9的bug吧
又试一下把a,b换成普通sprite, 第一个位置还是不能触发click事件, 是不是和listview位置判断有关系
楼主能不能给个测试代码,我们没重现
— Begin quote from ____
引用第5楼htlxyz于2014-09-22 14:29发表的 :
楼主能不能给个测试代码,我们没重现 http://www.cocoachina.com/bbs/job.php?action=topost&tid=231412&pid=1060921
— End quote
我找到问题了
我用的版本例子里有这句
if not event.listView:isItemInViewRect(event.itemPos) then
print(“TestUIListViewScene item not in view rect”)
return
end
我刚下的新版代码变成这样
local listView = event.listView
if “clicked” == event.name then
if 3 == event.itemPos then
listView:removeItem(event.item, true)
else
– event.item:setItemSize(120, 80)
end
end
不判断isItemInViewRect条件的话是可以触发的