ListView交互性问题

ListView的事件响应很难搞定啊,无论TouchBegan、TouchEnded还是TouchMoved都是一个事件类型,分不出来啊。

ListViewEventType更坑,就一种类型,这。。。。。。

typedef enum
{
LISTVIEW_ONSELECTEDITEM
}ListViewEventType;

这怎么区分啊

有没有解决了这个问题的?

补充一下,现在用记录次数的方法分辨是Began还是Ended,但是还是没办法识别出Moved

int _clicked = 0;

void MyListLayer::onItemSelected(Obeject *pSender, ListViewEventType type)
{
_clicked++;
switch(_clicked)
{
case 1:
break;
case 2:
CCLOG(“Clicked”);
_clicked=0;
break;
default:
break;
}
}

ScrollViewEvent也要加上
addEventListenerScrollView(this, scrollvieweventselector(MyList::onListScrolling));
addEventListenerListView(this, listvieweventselector(MyList::onItemSelected));

bool _scrolling = false;
int _clicked = 0;

void MyList::onListScrolling(Object *pSender, ScrollviewEventType type) {
_scrolling = true;
CCLOG(“Scrolling”);
}

void MyList::onItemSelected(Object *pSender, ListViewEventType type) {
_clicked++;
switch (_clicked) {
case 1:
_scrolling = false;
break;
case 2:
if (!_scrolling) {
CCLOG(“Selected”);
this->removeFromParent();
}
_clicked = 0;
break;
default:
_scrolling = false;
_clicked = 0;
break;
}
}

也遇到这个坑,谢谢楼上的解决方案。不过ListViewEventType多几种类型会方便的多。

为了避免使用这个反人类的ListView
我把CCTableView拷贝出来,另外实现了一个UITableView类,NND累死了