Как конвертировать NSView в CALayer?

Я сделал видеоплеер, и изображения рисуются в NSView. Есть ли способ преобразовать NSView в CALayer? Я пытаюсь использовать представление хостинга слоев, но в документе разработчика говорится, что не удается добавить любые подпредставления для представления уровня размещения. Кто-нибудь может дать мне несколько предложений? Этот код может работать в OSX 10.6.8, но OSX 10.7 и 10.8.

mDisplayView = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, width, height)];
mDisplayLayer = [[CALayer layer] retain];

[mDisplayView setLayer:mDisplayAudioLayer];
[mDisplayView setWantsLayer:YES];
[mDisplayView addSubview:mContentView];
[mRootLayer addSublayer:mDisplayAudioLayer];

Изображение видео было нарисовано в mContentView. Мне просто нужно найти способ превратить mContentView в CALayer, возможно ли это?


person Magical    schedule 02.04.2013    source источник


Ответы (1)


Вы не преобразовываете представление в слой — вы либо рисуете в виде традиционным способом, переопределяя drawRect:, либо переключаете его на представление со слоями и используете CoreAnimation.

Лучше всего начать здесь, чтобы понять основные понятия:

Руководство по программированию основной анимации

person Jay    schedule 02.04.2013
comment
Истинный. Но у меня сложилось впечатление, что основные понятия о том, как использовать представления и слои, не совсем понятны для OP. Вероятно, неудивительно, что CA прикручен к AppKit в OS X. - person Jay; 03.04.2013