2015-01-15 1 views
2

У меня есть странная ошибка с CGPoints использованием POP Animation Framework и SwiftPOPSpringAnimation toValue CGPoint ошибка с Swift

Я всегда использовал Objective-C и Pop, чтобы сделать анимацию, но сейчас я пытаюсь сделать то же самое с Swift, и когда я пытаюсь запустить следующий код, он умирает со следующей ошибкой: Завершение приложения из-за неперехваченного исключения «Недопустимое значение», причина: «NSPoint: {100, 20} должен иметь тип int ' Затем я пытаюсь для этого просто значение Int, и оно работает, но просто огибает ось X и оставляет ось Y равной 0.

func interact(){ 
     var spAn = POPSpringAnimation(propertyNamed:kPOPViewCenter) 
     spAn.velocity = 1 
     if opened{ 
      spAn.toValue = NSValue(CGPoint: CGPoint(x: -100, y: 20)) 
      opened = false 
     } 
     else{ 
      spAn.toValue = NSValue(CGPoint: CGPoint(x: 100, y: 20)) 
      opened = true 
     } 
     self.pop_addAnimation(spAn, forKey: "center") 
    } 
+0

Я рекомендую вам сообщить об этом здесь ... https://github.com/facebook/pop/issues – combinatorial

+0

Я перезаписываю Xcode и отлично работает. Я думаю, что это ошибка, соединяющая Swift с ObjC-методами – lojals

ответ

4

Ваши velocity и toValue должны быть одного типа.

Поскольку вы установили velocity в 1 (типа int), он ожидает, что ваш toValue будет иметь тип int.

У меня была эта же проблема (с использованием Obj-c), но мне говорили, что мой toValue должен быть типа CGPoint. Сначала я использовал свойство анимации, которое ожидало CGPoint, и когда я его изменил, я забыл также изменить тип velocity.

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