cocos2dx 3.0版本号TableView拍生自ScrollView,经常使用来做滚动列表,有几种特殊使用方法,不知道大家用到过没
要求:1.滚动时不能选中TableCell,非滚动状态才干选中
非常easy,在TableView的delegate函数中,通过isTouchMoved()函数来推断
void WeaponSelectLayer::tableCellUnhighlight(cocos2d::extension::TableView* table, cocos2d::extension::TableViewCell* cell) { if (table->isTouchMoved()) { return; } //TODO:Select item. }
要求2:拖拽到边缘没有选项时,TableView不能再被拖拽
void WeaponSelectLayer::scrollViewDidScroll(cocos2d::extension::ScrollView* view) { Point off = view->getContentOffset(); if (off.y < view->minContainerOffset().y) { view->setContentOffset(Point(off.x, view->minContainerOffset().y)); } if (off.y > view->maxContainerOffset().y) { view->setContentOffset(Point(off.x, view->maxContainerOffset().y)); } }
这样的方法有个BUG, 当你提供的TableCell不能填充满整个TableVIew的时候,会出现递归死循环,可是保证能填充满整个TableView的时候,整个方法还是能够的,假设大家有更好的办法,洗耳恭听