我开始使用UIView动画。并且无法使此类代码正常工作。这是我所拥有的
if(_Language.hidden == true)
{
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^ {
_Language.alpha = 1.0;
}
completion:^(BOOL finished) {
_Language.hidden = false;
}];
}
else
{
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^ {
_Language.alpha = 0.0;
}
completion:^(BOOL finished) {
_Language.hidden = true;
}];
}
此代码以这种方式工作。隐藏动画按预期工作。但是显示动画只需等待 1 秒,然后弹出对象而没有任何过渡。谁能告诉我我在这里错过了什么?
仅在动画结束后才将 hidden
属性更改为 true,因此在动画完成之前不会显示该属性。 您应该在动画开始之前执行此操作:
if(_Language.hidden == true)
{
_Language.hidden = false;
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^ {
_Language.alpha = 1.0;
}];
}
您的_Language.hidden
设置为true
,因此当它动画化时,屏幕上不会显示任何内容。您需要在制作动画之前使其可见。将隐藏属性设置为 false,然后显示动画。相反,当您将其添加到完成块中时,则仅适用于隐藏。
_Language.hidden = false;
[UIView animateWithDuration:1.0 ...
并将其从完成块中删除,
completion:^(BOOL finished) {
}];