ListView的事件响应很难搞定啊,无论TouchBegan、TouchEnded还是TouchMoved都是一个事件类型,分不出来啊。
ListViewEventType更坑,就一种类型,这。。。。。。
typedef enum
{
LISTVIEW_ONSELECTEDITEM
}ListViewEventType;
这怎么区分啊
有没有解决了这个问题的?
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累死了