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
。我遇到了同样的问题,这对我有用。
我正在尝试在我的游戏中使用 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
。我遇到了同样的问题,这对我有用。