Управление касаниями в 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;
}