【问题标题】:How to get rid of warnings about enabling Core Animation Layer如何摆脱有关启用核心动画层的警告
【发布时间】:2011-12-15 01:16:22
【问题描述】:

我在我正在开发的一个 Cocoa 应用程序中对我的子视图进行了一些转换。回滚它们后,我留下了 5 个警告,说明“不支持的配置:添加子视图转换需要视图或其祖先之一启用核心动画层”。

如何摆脱它们?

编辑:澄清一下:我只是在玩转过渡,看看它们会如何工作,然后将它们全部删除。还从菜单中“清理”并重建了我的项目。

【问题讨论】:

  • .xib 文件的编译过程中是否显示了这些警告?如果是公开的,你能把它贴在某个地方吗?
  • 很遗憾,由于保密原因,我无法发布它们。错误会永久显示在问题导航器中。

标签: cocoa xcode4 core-animation


【解决方案1】:

为了摆脱这个警告,打开视图的顶部并查看 View Effects Inspector 并检查视图。

【讨论】:

  • 在 XCode 8.0 中使用我的 Mac OS 项目为我工作。
【解决方案2】:

仔细查看视图的最高层次结构。 在我玩过这个层次结构中的一些转换之后,我也遇到了这个问题。

经过仔细检查后,我注意到在 IB 的核心动画层中视图的顶层层级中仍然有一个过滤器处于活动状态。删除那个后,我能够在没有警告的情况下进行编译。

【讨论】:

    【解决方案3】:

    以下事情对我有用,摆脱了这个警告,

    1 -- 将 XiB 作为源代码打开,会打开一个 XML 文件

    2 -- 删除以下 XML 部分,

    <!-- <object class="NSDictionary" key="NSViewAnimations">
                            <string key="NS.key.0">subviews</string>
                            <object class="CATransition" key="NS.object.0">
                                <object class="CIRippleTransition" key="filter">
                                    <object class="NSCustomResource" key="CI_inputTargetImage">
                                        <string key="NSClassName">CIImage</string>
                                        <string key="NSResourceName">largegears</string>
                                    </object>
                                    <object class="NSCustomResource" key="CI_inputShadingImage">
                                        <string key="NSClassName">CIImage</string>
                                        <string key="NSResourceName">LogoLg</string>
                                    </object>
                                    <object class="CIVector" key="CI_inputCenter">
                                        <int key="CICount">2</int>
                                        <string key="CIVector">{{150, 150}, {0, 0}}</string>
                                    </object>
                                    <object class="CIVector" key="CI_inputExtent">
                                        <int key="CICount">4</int>
                                        <string key="CIVector">{{0, 0}, {300, 300}}</string>
                                    </object>
                                    <real value="0.0" key="CI_inputTime"/>
                                    <real value="100" key="CI_inputWidth"/>
                                    <real value="50" key="CI_inputScale"/>
                                    <bool key="CIEnabled">YES</bool>
                                </object>
                                <string key="subtype">fromTop</string>
                                <string key="type">fade</string>
                                <object class="NSArray" key="__CACodingContents">
                                    <bool key="EncodedWithXMLCoder">YES</bool>
                                    <string>filter</string>
                                    <string>subtype</string>
                                    <string>type</string>
                                </object>
                            </object>
                        </object> -->
    

    关键是搜索 CATransition 和 Commentout 其对应的 NSDictionary 属性应该注释掉,

    但归根结底,必须弄清楚它是如何添加的。

    【讨论】:

      【解决方案4】:

      找到了。

      显然 XCode 感到困惑 - 至少这是我的解释。

      当您导航到问题导航器时,警告将消失,右键单击警告并选择“打开为 - 源代码”。然后,您将看到 XIB 的 XML 表示。就我而言,我发现了一些对转换的引用,但在关闭它们后,它们就像警告一样消失了。

      【讨论】:

      • 那太糟糕了。它对我有用。
      • @VibhorGoyal:你是否因为我的答案不适合你而否决了我的答案?
      • 是的,也因为它不是正确的答案。不仅仅是 xcode 变得混乱。还有其他原因。
      • 这是正确的答案,因为它解决了我的问题。我实际上可以复制问题并使用我的答案中描述的程序解决它。它没有解决你的问题并不意味着你的问题和我的一样。
      猜你喜欢
      • 2020-01-10
      • 2022-07-06
      • 2018-09-26
      • 2016-02-04
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      相关资源
      最近更新 更多