有些人可以帮助我在swift中使用transitionWithView的语法.在objective-c中我会像这样使用它:
[UIView transitionWithView:[ self view ] duration:0.325 options:UIViewAnimationOptionCurveEaseOut animations:
^{
// do the transition
}
completion:
^( BOOL finished ){
// cleanup after the transition
}];
Run Code Online (Sandbox Code Playgroud)
但是我无法让完成处理程序工作.谢谢
hol*_*lex 23
在Swift中会是这样的:
UIView.transition(with: self.view, duration: 0.325, options: .curveEaseInOut, animations: {
// animation
}) { finished in
// completion
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*ieu 10
我想添加一个接受的答案,你可以通过transitionWithView传递一个数组来传递多个选项:
UIView.transitionWithView(status, duration: 0.33, options:
[.CurveEaseOut, .TransitionCurlDown], animations: {
//...animations
}, completion: {_ in
//....transition completion
delay(seconds: 2.0) {
}
})
Run Code Online (Sandbox Code Playgroud)
UIView.transitionWithView(status, duration: 0.33, options:
.CurveEaseOut | .TransitionCurlDown, animations: {
//...animations
}, completion: {_ in
//transition completion
delay(seconds: 2.0) {
}
})
Run Code Online (Sandbox Code Playgroud)
当然,您也可以使用这样的完全限定语法:
[UIViewAnimationOptions.CurveEaseOut, UIViewAnimationOptions.TransitionCurlDown]
Run Code Online (Sandbox Code Playgroud)
UIView.transition(with: someview,
duration:0.6,
options:UIViewAnimationOptions.transitionFlipFromLeft,
animations: {
// do something
}, completion:{
finished in
// do something
})
Run Code Online (Sandbox Code Playgroud)