Управление касаниями в CCScrollLayer (cocos2d iOS)

В моем приложении есть CCScrollLayer, который содержит подвижные спрайты (их можно перетаскивать). Проблема в том, что при перетаскивании спрайтов CCScrollLayer начинает прокручиваться. Я пытаюсь отключить прокрутку CCScrollLayer, пока перетаскиваю эти спрайты. Отключение работает с помощью

[[CCTouchDispatcher sharedDispatcher] removeDelegate:sender];

Я получаю отправителя из метода

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

Я не могу снова включить CSScrollLayer, пробовал с этим, но безрезультатно:

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

Я использую v1.0.1 (стабильная версия)

1 ответ

Решение

Вы можете создать подкласс CCScrollLayer и добавить включенное свойство boolean. Просто переопределите сенсорные методы, которые CCScrollLayer использует, чтобы начать скольжение. Например

-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
     if(self.enabled)
           return [super ccTouchBegan:touch withEvent:event];
     else
           return NO;
}
Другие вопросы по тегам