Reputation: 1893
After updating cocos2d-objc project to Xcode7, iOS9 I have got my CCScrollView instances broken. Tap and pan gestures aren't recognized + xcode throws console warning
WARNING: A Gesture recognizer (; target= <(action=handleTap:, target=)>>) was setup in a storyboard/xib to be added to more than one view (->; layer = >) at a time, this was never allowed, and is now enforced. Beginning with iOS 9.0 it will be put in the first view it is loaded into.
Upvotes: 1
Views: 234
Reputation: 1893
Problem had been fixed after patching CCScrollView and using UIView's api to manipulate current gestureRecoznigers list with corresponding API methods
-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];
}
Upvotes: 1