【问题标题】:cocos2d-objc v3.4.9 CCScrollView problems after migrating to Xcode7, iOS9cocos2d-objc v3.4.9 迁移到Xcode7、iOS9后出现CCScrollView问题
【发布时间】:2015-10-08 12:58:33
【问题描述】:

将 cocos2d-objc 项目更新到 Xcode7、iOS9 后,我的 CCScrollView 实例损坏了。无法识别点击和平移手势 + xcode 引发控制台警告

警告:手势识别器 (; target= >) 在情节提要/xib 中设置为 被添加到多个视图 (->; layer = >) 一次,这是不允许的,并且是 现在强制执行。从 iOS 9.0 开始,它将被放在第一个视图中 它被加载到。

【问题讨论】:

    标签: objective-c cocos2d-iphone ios9 ccscrollview


    【解决方案1】:

    在修补 CCScrollView 并使用 UIView 的 api 通过相应的 API 方法操作当前的gestureRecoznigers 列表后,问题已得到修复

    -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];
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 2020-04-27
    • 1970-01-01
    • 2011-09-12
    • 2017-01-07
    • 1970-01-01
    相关资源
    最近更新 更多