CCScrollView does't receive touches (Cocos2d V 3.0)

542 Views Asked by At

I try to add CCScrollView with paging (cocos2d- iphone v3.0). But it's not working. It doesn't call any delegate methods (for example scrollViewDidScroll:).

CCNode *cards = [CCNode node];
for (int i = 0 ; i < 3; i++) {
    CCLabelTTF *label = [CCLabelTTF labelWithString:[NSString stringWithFormat:@"label %d", i] fontName:@"Arial" fontSize:24];
    label.color = [CCColor redColor];
    label.position = ccp(winSize.width * i + winSize.width * 0.5 , winSize.height * 0.5);
    [cards addChild:label];
}
self.scrollView = [[CCScrollView alloc] initWithContentNode:cards];
self.scrollView.contentSizeType = CCSizeTypeNormalized;
self.scrollView.contentSize = CGSizeMake(3, 1);
self.scrollView.pagingEnabled = YES;
self.scrollView.delegate = self;
self.scrollView.position = CGPointZero;
self.scrollView.anchorPoint = CGPointZero;
[self addChild:self.scrollView];
1

There are 1 best solutions below

3
On

You actually need to set the contentSize of the contentNode of the scrollView as opposed to the contentSize of the scrollView.

In CCScrollView.h

@property (nonatomic,strong) CCNode* contentNode;

So you should replace this part of the code:

self.scrollView.contentSizeType = CCSizeTypeNormalized;
self.scrollView.contentSize = CGSizeMake(3, 1);

With this:

self.scrollView.contentNode.contentSizeType = CCSizeTypeNormalized;
self.scrollView.contentNode.contentSize = CGSizeMake(3, 1);