Как избавиться от предупреждений о включении основного слоя анимации

#cocoa #xcode4 #core-animation

#cocoa #xcode4 #core-animation

Вопрос:

Я немного поэкспериментировал с переходами для своих вложенных представлений в приложении Cocoa, которое я разрабатываю. После их отката у меня осталось 5 предупреждений, в которых говорится: «Неподдерживаемая конфигурация: для добавления перехода subview требуется, чтобы представление или один из его предков включили основной слой анимации».

Как мне избавиться от них?

РЕДАКТИРОВАТЬ: Чтобы уточнить: я просто поиграл с переходами, чтобы посмотреть, как они будут работать, но затем удалил их все. Также выполнил «чистку» из меню и перестроил мой проект.

Комментарии:

1. Отображаются ли эти предупреждения во время компиляции файла .xib? Если это общедоступно, не могли бы вы опубликовать его где-нибудь?

2. К сожалению, я не могу опубликовать их из-за конфиденциальности. Ошибки постоянно отображаются в навигаторе проблем.

Ответ №1:

Для меня сработало следующее, чтобы избавиться от этого предупреждения,

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 должен закомментировать,

Но, в конечном счете, нужно выяснить, как его добавляют.

Ответ №2:

Чтобы избавиться от этих предупреждений, откройте верхнюю часть представления и посмотрите Инспектор эффектов просмотра и проверьте представление.

Изображение

Комментарии:

1. Работал для меня в XCode 8.0 с моим проектом Mac OS.

Ответ №3:

Нашел это.

По-видимому, XCode запутывается — по крайней мере, это моя интерпретация.

Предупреждения исчезнут, когда вы перейдете к навигатору проблем, щелкните правой кнопкой мыши предупреждение и выберите «Открыть как исходный код». Затем вы увидите XML-представление вашего XIB. В моем случае я нашел несколько ссылок на переходы, но после их закрытия они исчезли, как и предупреждение.

Комментарии:

1. Это очень плохо. для меня это сработало.

2. @VibhorGoyal: Вы проголосовали за мой ответ, потому что он не работал для вас?

3. Да, а также потому, что это неправильный ответ. Запутывается не только xcode. Есть что-то еще, что вызывает это.

4. Это правильный ответ, поскольку он решил МОЮ проблему. Я действительно могу воспроизвести проблему и решить ее, используя процедуру, описанную в моем ответе. Тот факт, что это не решило вашу проблему, не означает, что ваша проблема такая же, как у меня.

Ответ №4:

Внимательно посмотрите на верхнюю иерархию вашего представления. После того, как я поиграл с некоторыми переходами в этой иерархии, у меня также возникла эта проблема.

После некоторого более тщательного изучения я заметил, что в верхней иерархии представления в основном уровне анимации IB все еще активен фильтр. После удаления этого я смог скомпилировать без предупреждения.