У меня есть некоторый NSView, который я хочу оживить, но NSView имеет NSTableView внутри, который не отображает корреляцию, когда представление поддерживается на основе слоев (что в свою очередь нецелесообразно анимировать представление). Так что мой ответ должен был сделать слой спинками право просмотра, прежде чем анимировать, а затем, когда анимация была сделана удалить слой, как это:Анимированная анимация NSView с поддержкой Layer
[animatingView setWantsLayer: YES];
[NSAnimationContext beginGrouping];
[[animatingView animator] animateSomething];
[[NSAnimationContext currentContext] setCompletionHandler: ^{
[animatingView setWantsLayer: NO];
}];
[NSAnimationContext endGrouping];
Однако, с этим кодом вид не анимировать вообще. Я обнаружил, что если я удаляю строку [animatingView setWantsLayer: NO];
, она анимируется только вправо, но тогда представление таблицы отображается неправильно (см. Вопрос this для примера одной из проблем).
Итак, мой вопрос: как я могу это решить? Я хочу анимировать представление, но хочу, чтобы таблицы отображались правильно, и это обходное решение не работает. И я не понимаю, почему ...
Но представление должно содержать таблицу, это идея. В представлении содержатся таблица, некоторые кнопки и некоторые текстовые поля, и я хочу оживить их все и в то же время, и это не вариант для их анимации один за другим. – Alex
@Alex Согласен. Но, к сожалению, вы просто столкнулись с ошибкой, и вам нужно найти обходной путь. Вы должны либо взломать ваш NSTableView, чтобы работать корректно в режиме супервизора с поддержкой слоев, либо взломать процесс анимации. – Kentzo
Ну, у вас есть точка, конечно. Я все еще что-то не понимаю: почему код не приводит к анимации? Я имею в виду, что я настраиваю представление на слой с поддержкой слоев, а затем я его оживляю, а затем, в конце концов, я делаю это не с поддержкой слоев, но это не делает что-то по вашему мнению, так почему не оживляет ли он? Как я уже сказал в вопросе, если я удаляю строку в обработчике завершения, он оживляет, так что кажется, что линия действительно имеет значение. Как так? – Alex