2013-06-15 6 views
0

Я только начал играть с NSAnimation и Core Animation, но я не могу представить анимацию NSImage, скользящую из-за экрана (я также не могу заставить вращающуюся анимацию работать, но это другой вопрос). Когда я инициализирую NSImageView (с установленным NSImage свойством изображения) вне окна, изображение не отображается. Что я делаю неправильно, чтобы NSImage не перерисовывал?Слайд в NSImage из Offscreen

imageView = [[NSImageView alloc] initWithFrame:NSMakeRect(-818, 0, 818, 494)]; 
NSImage *image = [NSImage imageNamed:@"image.png"]; 

[imageView setImage:image]; 

[mainView addSubview:imageView]; 

NSRect outFrame = NSMakeRect(678, 0, imageView.frame.size.width, imageView.frame.size.width); 

CABasicAnimation *animation = [CABasicAnimation animation]; 
animation.toValue = [NSValue valueWithRect:outFrame]; 


NSView *view = self.window.contentView; 
view.animations = @{@"frame" : animation}; 
[[view animator] setFrame:outFrame]; 

ответ

0

Ваш код сбит с толку.

Сначала вам нужно включить поддержку слоя вашего вида.

Затем вы либо хотите использовать прокси-сервер анимации для изменения свойства, которое хотите оживить, ИЛИ вы хотите использовать CAAnimation для анимации слоя, а не для обоих.

Для простого анимирования его положения проще использовать прокси-сервер анимации.

В основном я пишу для iOS в эти дни, поэтому я едва использовал анимационные прокси.

Я считаю, что вы должны просто избавиться от своей CAAnimation, и ваш код, который устанавливает кадр на прокси-сервер анимации, должен работать. Вы должны установить флаг, чтобы сделать ваш слой с поддержкой слоя, чтобы это работало.

добавить этот код после добавления вашего взгляда на его надтаблицу:

imageView.wantsLayer = YES; 
+0

Yep. Вот и все. Я не знаю, как мне удалось реализовать две разные формы анимации одновременно. Спасибо! – agg23

 Смежные вопросы

  • Нет связанных вопросов^_^