2

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;

}
4

1 回答 1

1

您需要在您的实例上设置multipleTouchEnabled为. 我有同样的问题,这对我有用。YESCCTableView

于 2015-06-04T02:56:21.737 回答