I am trying to use a CCTableView in my game. You should be able to scroll through a list of names. I am able to click on a cell and log the which cell was clicked. However when I try to scroll there is no movement.
@interface WSMPlayerCandidateSubMenu(){
CCNodeColor *_candidateSubMenuSprite;
}
@implementation WSMPlayerCandidateSubMenu
- (void)onEnter{
[super onEnter];
CGSize winSize = [[CCDirector sharedDirector] viewSize];
_candidateSubMenuSprite.color = [CCColor whiteColor];
_candidateSubMenuSprite.userInteractionEnabled = NO;
self.candidateArray = [[WSMGameManager sharedManager] returnCompany].candidates;
CCTableView *tblScores = [CCTableView node];
tblScores.contentSize = CGSizeMake(1.0,0.8);
tblScores.anchorPoint = ccp(0.5f,0.375f);
tblScores.positionType = CCPositionTypeNormalized;
tblScores.position = _candidateSubMenuSprite.position;
tblScores.userInteractionEnabled = YES;
tblScores.dataSource = self;
tblScores.verticalScrollEnabled = YES;
tblScores.block = ^(CCTableView *table){
NSLog(@"Cell %ld", (long)table.selectedRow);
};
[_candidateSubMenuSprite addChild:tblScores];
}
-(CCTableViewCell*)tableView:(CCTableView *)tableView nodeForRowAtIndex:(NSUInteger)index{
CCTableViewCell* cell = [CCTableViewCell node];
cell.contentSizeType = CCSizeTypeMake(CCSizeUnitNormalized, CCSizeUnitPoints);
cell.contentSize = CGSizeMake(1, 40);
// Color every other row differently
CCNodeColor* bg = [CCNodeColor nodeWithColor:[CCColor colorWithRed:52/255.f green:73/255.f blue:94/255.f]];
bg.userInteractionEnabled = NO;
bg.contentSizeType = CCSizeTypeNormalized;
bg.contentSize = CGSizeMake(1, 1);
[cell addChild:bg];
WSMEmployee *candidate = (WSMEmployee*)[self.candidateArray objectAtIndex:index];
CCLabelTTF *lblCompanyName = [CCLabelTTF labelWithString:candidate.name fontName:@"ArialMT" fontSize:15.0f];
lblCompanyName.anchorPoint = ccp(1,0.5);
//lblTurnsSurvived.string = @"1000";
lblCompanyName.positionType = CCPositionTypeNormalized;
lblCompanyName.position = ccp(0.15,0.5);
lblCompanyName.color = [CCColor colorWithRed:242/255.f green:195/255.f blue:17/255.f];
[cell addChild:lblCompanyName];
return cell;
}
-(NSUInteger)tableViewNumberOfRows:(CCTableView *)tableView{
return [self.candidateArray count];
}
-(float)tableView:(CCTableView *)tableView heightForRowAtIndex:(NSUInteger)index{
return 40.f;
}
You need to set multipleTouchEnabled
to YES
on your instance of CCTableView
. I had this same problem and that worked for me.