2011-05-07 1 views
2

Я пытаюсь оживить движение настраиваемого представления шахты, используя следующий код (мой лучший перевод с Objective-C из яблок собственных документов)Не могу анимировать настраиваемое представление

 var animDict = new NSMutableDictionary(); 
     animDict [NSViewAnimation.TargetKey] = this.View; 
     animDict [NSViewAnimation.StartFrameKey] = NSValue.FromRectangleF (this.View.Frame); 
     animDict [NSViewAnimation.EndFrameKey] = NSValue.FromRectangleF (new RectangleF (0, 150 * index, 400, 150)); 

     var theAnim = new NSViewAnimation(); 
     theAnim.SetValuesForKeysWithDictionary (animDict); 
     theAnim.Duration = 2; 
     theAnim.StartAnimation(); 

Однако я получить следующую ошибку во время выполнения при запуске приложения: 2011-05-08 00: 53: 30.827 EpisodeNext [61715: 613] [setValue: forUndefinedKey:]: этот класс не является ключевым значением, совместимым с кодировкой для ключевого NSViewAnimationTargetKey.

Любая идея, что я делаю неправильно? Thanx!

ответ

3

Вы не можете использовать метод SetValuesForKeysWithDictionary для передачи ключей анимации в экземпляр NSViewAnimation.

Для передачи словаря анимации необходимо использовать конструктор NSViewAnimation(NSDictionary[] viewAnimations).

+0

Unfortuanettly делать, что я получаю следующее: CS1503 ошибки: Аргумент '# 1' не может преобразовать' MonoMac.Foundation.NSMutableDictionary «выражение типа' MonoMac.Foundation.NSCoder»(просто удалили SetValuesForKeysWithDictionary метод и положить animDict в конструкторе NSViewAnimation ...) –

+0

Вы пытались использовать «var aAnim = new NSViewAnimation (новый NSMutableDictionary [] {animDict}); ? –

+0

Это сработало ... Очень странный синтаксис, хотя (на мой взгляд) –

2

// Создаем словарь атрибутов для первого представления.

 NSMutableDictionary firstViewDict = new NSMutableDictionary(); 


     //var firstViewRect = new NSDictionary[] { }; 
     firstViewDict [NSViewAnimation.TargetKey] = animateWindow; 
     firstViewDict [NSViewAnimation.StartFrameKey] = NSValue.FromRectangleF (new RectangleF (1000, 300 , this.Frame.Width - 40, 0)); 
     firstViewDict [NSViewAnimation.EndFrameKey] = NSValue.FromRectangleF (SettingNSWindow.Frame); 


     //var NSDict = new NSDictionary[]{ }; 
     NSDictionary[] NSDict = new NSDictionary[]{firstViewDict}; 

     //NSDict.Cast(NSMutableDictionary = (NSDictionary[])firstViewDict; 

     NSViewAnimation theAnim = new NSViewAnimation(NSDict); 

     //theAnim.SetValuesForKeysWithDictionary (firstViewDict); 
     theAnim.Duration = 2; 
     theAnim.StartAnimation(); 

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

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