Skip to content

Commit bdd260d

Browse files
committed
Fixed an iOS9 issue with CCScrollView whereby gesture recognisers that were not being removed when the node was hidden, or removed from the node tree were being added a second time. iOS8 and earlier allowed this even though it wasn't correct. iOS 9 prevents this from working anymore.
1 parent cdc50bd commit bdd260d

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

cocos2d-ui/CCScrollView.m

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -768,8 +768,14 @@ - (void) onEnterTransitionDidFinish
768768

769769
NSMutableArray* recognizers = [view.gestureRecognizers mutableCopy];
770770
if (!recognizers) recognizers = [NSMutableArray arrayWithCapacity:2];
771-
[recognizers insertObject:_panRecognizer atIndex:0];
772-
[recognizers insertObject:_tapRecognizer atIndex:0];
771+
772+
if ([recognizers containsObject:_panRecognizer] == NO) {
773+
[recognizers insertObject:_panRecognizer atIndex:0];
774+
}
775+
776+
if ([recognizers containsObject:_tapRecognizer] == NO) {
777+
[recognizers insertObject:_tapRecognizer atIndex:0];
778+
}
773779

774780
view.gestureRecognizers = recognizers;
775781
[super onEnterTransitionDidFinish];

0 commit comments

Comments
 (0)