将cocos2d-objc项目更新为Xcode7,iOS9后,我的CCScrollView实例被破坏了。点击和平移手势无法识别+ xcode抛出控制台警告
警告:手势识别器(; target =<(action = handleTap:, target =)>>)是在storyboard / xib中设置的 被添加到多个视图( - &gt ;; layer = >)一次,这是永远不允许的,而且是 现在强制执行。从iOS 9.0开始,它将放在第一个视图中 它被装入。
答案 0 :(得分:1)
在修补CCScrollView并使用UIView的api操作当前的gestureRecoznigers列表并使用相应的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];
}