#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 все еще активен фильтр. После удаления этого я смог скомпилировать без предупреждения.