cocos2d-objc v3.4.9 Проблемы CCScrollView после миграции на Xcode7, iOS9

После обновления проекта cocos2d-objc до Xcode7, iOS9 у меня сломались экземпляры CCScrollView. Жесты касания и панорамирования не распознаются + xcode выдает предупреждение консоли

ВНИМАНИЕ: Распознаватель жестов (; target = <(action = handleTap:, target =) >>) был настроен в раскадровке / XIB для добавления к более чем одному представлению (->; layer = >) одновременно, это никогда не был разрешен, и теперь применяется. Начиная с iOS 9.0 он будет помещен в первый вид, в который он загружен.

1 ответ

Проблема была исправлена ​​после исправления CCScrollView и использования API-интерфейса UIView для управления текущим списком gestRecoznigers с помощью соответствующих методов API

-addGestureRecognizer: -removeGestureRecognizer:

- (void) onEnterTransitionDidFinish
{
    // Add recognizers to view
    UIView* view = [CCDirector sharedDirector].view;

    /*
    NSMutableArray* recognizers = [view.gestureRecognizers mutableCopy];
    if (!recognizers) recognizers = [NSMutableArray arrayWithCapacity:2];
    [recognizers insertObject:_panRecognizer atIndex:0];
    [recognizers insertObject:_tapRecognizer atIndex:0];

    view.gestureRecognizers = recognizers;
     */
    [view addGestureRecognizer:_panRecognizer];
    [view addGestureRecognizer:_tapRecognizer];

    [super onEnterTransitionDidFinish];
}

- (void) onExitTransitionDidStart
{
    // Remove recognizers from view
    UIView* view = [CCDirector sharedDirector].view;

    /*NSMutableArray* recognizers = [view.gestureRecognizers mutableCopy];
    [recognizers removeObject:_panRecognizer];
    [recognizers removeObject:_tapRecognizer];

    view.gestureRecognizers = recognizers;*/
    [view removeGestureRecognizer:_panRecognizer];
    [view removeGestureRecognizer:_tapRecognizer];

    [super onExitTransitionDidStart];
}
Другие вопросы по тегам