Core Animation - имитировать эффект закрытия окна Windows 7? - PullRequest
2 голосов
/ 07 июля 2010

У меня есть базовое NSWindow без декораций (заголовок и т. Д.), NSWindow установлено на непрозрачность без тени и т. Д. Оно находится на уровне заставки (так что «самое верхнее» окно приложения)

contentView настроен для моего подкласса NSView, который говорит: «Загрузка» достигнута путем рисования CIImage.

Все это окно расположено по центру экрана. Он открывается, когда событие загрузки происходит в другом месте. Когда загрузка закончится, я закрываю окно.

Вместо того, чтобы он мгновенно появлялся и мгновенно исчезал, было бы здорово, чтобы он исчезал, как эффект закрытия окна Windows 7 / aero, и появлялся таким же образом.

Чтобы уточнить: при закрытии окно будет увеличиваться в размере около 20% и исчезать до полупрозрачного. При открытии окно будет выглядеть примерно на 20% больше, чем было запущено, и затемнение станет непрозрачным.

Как мне это сделать? Одним из способов является то, что я мог бы заставить NSWindow на самом деле иметь базовый размер + 20% и, возможно, использовать NSAnimation для анимации представления. Однако это не похоже на прямой «хороший» путь. Как я могу использовать CA для обработки анимации этого окна так, как я описал? Также открыт для альтернативных решений

1 Ответ

1 голос
/ 08 июля 2010

Вы можете использовать NSViewAnimation , чтобы исчезнуть и изменить размер окна.Вопреки своему названию, он работает как с окнами, так и с представлениями.

Обратите внимание, что я понятия не имею, как выглядят какие-либо эффекты в Windows 7, поскольку я не использую Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...