我的应用程序中有一个CCScrollLayer,其中包含可移动的精灵(可以将其拖放)。问题是,当将精灵拖动得太远时,CCScrollLayer将开始滚动。只要我拖动这些精灵,就试图禁止CCScrollLayer滚动。通过使用禁用工作

[[CCTouchDispatcher sharedDispatcher] removeDelegate:sender];


我从方法获得发件人

- (void)scrollLayerScrollingStarted:(CCScrollLayer *)sender {
    //...
}


我无法再次启用CSScrollLayer,对此进行了尝试,但没有结果:

[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:scrollLayer priority:0 swallowsTouches:NO];


我正在使用v1.0.1(稳定版)

最佳答案

您可以子类化CCScrollLayer并添加一个启用的属性boolean。只需覆盖CCScrollLayer开始滑动的触摸方法即可。例如

-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
     if(self.enabled)
           return [super ccTouchBegan:touch withEvent:event];
     else
           return NO;
}

10-05 20:34