animations animate ios swift uiviewanimation swift2 xcode7

ios - animations - uiview animate swift 4



UIView.animateWithDuration en Swift 2.0? (1)

Está pasando una enumeración de tipo UIViewAnimationTransition a un argumento que requiere el tipo UIViewAnimationOptions (argumento de options )

Aquí está la sintaxis correcta con el valor enum correcto:

func moveSideBarToXposition(iXposition: Float) { let convertedXposition = CGFloat(iXposition) UIView.animateWithDuration(0.5, delay: 1.0, options: UIViewAnimationOptions.TransitionNone, animations: { () -> Void in self.contentView.frame = CGRectMake(convertedXposition, 20, self.contentView.frame.size.width, self.contentView.frame.size.height) }, completion: { (finished: Bool) -> Void in // you can do this in a shorter, more concise way by setting the value to its opposite, NOT value isMenuHidden = !isMenuHidden }) }

Antes de explicar mi problema, es importante decir que ya implementé la sugerencia hecha en esta pregunta y creo que mis dudas sobre este método animateWithDuration son bastante diferentes, a pesar de que ambas preguntas tienen un título muy similar.

Entonces, soy un novato de Swift y estoy haciendo algunos pequeños proyectos en Swift, basados ​​en demostraciones anteriores de Objective C que hice antes.

Este es mi código Objective C:

- (void)moveSideBarToXposition: (int) iXposition{ [UIView animateWithDuration:0.5f delay:0.1 options: UIViewAnimationOptionTransitionNone animations:^{ self.mainView.frame = CGRectMake(iXposition, 20, self.mainView.frame.size.width, self.mainView.frame.size.height); } completion:^(BOOL finished){ if (self.isSidebarHidden==YES) { self.isSidebarHidden = NO; } else{ self.isSidebarHidden = YES; } }]; }

Y esta es mi versión Swift:

func moveSideBarToXposition(iXposition: Float) { UIView.animateWithDuration(0.5, delay: 1.0, options: UIViewAnimationTransition.None, animations: { () -> Void in self.contentView.frame = CGRectMake(iXposition, 20, self.contentView.frame.size.width, self.contentView.frame.size.height) }, completion: { (finished: Bool) -> Void in if isMenuHidden == true { isMenuHidden = false } else { isMenuHidden = true } }) }

Y me sale este error.

No se puede invocar ''animateWithDuration'' con una lista de argumentos de tipo ''(Double, delay: Double, options: UIViewAnimationTransition, animations: () -> Void, complete: (Bool) -> Void)''

Leí la documentación pero en realidad no estoy seguro de cuál es el problema.

Por cierto, estoy trabajando en Xcode 7 y Swift 2.0