Не могу анимировать пользовательский вид - PullRequest
2 голосов
/ 08 мая 2011

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

        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!

Ответы [ 2 ]

3 голосов
/ 09 мая 2011

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

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

2 голосов
/ 22 февраля 2014

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

        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 ();
...