Cocos2D v3 CCTableView 不滚动

Cocos2D v3 CCTableView not scrolling

我正在尝试在我的游戏中使用 CCTableView。您应该能够滚动浏览名称列表。我能够单击一个单元格并记录单击了哪个单元格。但是,当我尝试滚动时,没有移动。

@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;

}

您需要在您的 CCTableView 实例上将 multipleTouchEnabled 设置为 YES。我遇到了同样的问题,这对我有用。