【问题标题】:CCScrollView does't receive touches (Cocos2d V 3.0)CCScrollView 不接收触摸(Cocos2d V 3.0)
【发布时间】:2014-05-30 14:05:19
【问题描述】:

我尝试添加带有分页的 CCScrollView (cocos2d-iphone v3.0)。但它不起作用。 它不调用任何委托方法(例如 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];

【问题讨论】:

    标签: ios cocos2d-iphone ccscrollview cocos2d-iphone-3


    【解决方案1】:

    您实际上需要设置scrollViewcontentNodecontentSize,而不是scrollViewcontentSize

    CCScrollView.h

    @property (nonatomic,strong) CCNode* contentNode;
    

    所以你应该替换这部分代码:

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

    有了这个:

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

    【讨论】:

    • 它没有帮助:(据我了解,问题不在于委托方法。即使 GestureRecognizers 方法也不会调用。我的意思是 handlePan: 和 handleTap:。但我不知道,怎么了
    • 我的猜测是你的项目中还有其他东西干扰了这个,因为我已经用我在一个新项目中的更改测试了你的代码并且一切正常。
    • 好的,谢谢。我从 CCNode 继承了 parent,当我将其更改为 CCScene 时,scrollView 可以正常工作。
    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    相关资源
    最近更新 更多