2015-06-04 3 views
2

Я пытаюсь использовать CCTableView в своей игре. Вы должны иметь возможность прокручивать список имен. Я могу щелкнуть по ячейке и зарегистрировать, какая ячейка была нажата. Однако, когда я пытаюсь прокрутить, нет движения.Cocos2D v3 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; 

} 

ответ

1

Вам нужно установить multipleTouchEnabled к YES на вашем экземпляре CCTableView. У меня была такая же проблема, и это сработало для меня.