Dat*_*shi 0 cocoa-touch block objective-c ios
我开始使用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;
}];
}
Run Code Online (Sandbox Code Playgroud)
此代码以这种方式工作.隐藏动画按预期工作.但是显示动画只等待1秒,然后弹出对象而没有任何过渡.谁能告诉我这里缺少什么?
hidden
仅在动画结束后才将属性更改为true,因此在动画完成之前不会显示该属性.你应该在动画开始之前做到这一点:
if(_Language.hidden == true)
{
_Language.hidden = false;
[UIView animateWithDuration:1.0
delay:0.0
options:UIViewAnimationCurveEaseInOut
animations:^ {
_Language.alpha = 1.0;
}];
}
Run Code Online (Sandbox Code Playgroud)
您_Language.hidden
的设置为true
,因此在动画时,屏幕上不会显示任何内容.您需要在动画制作之前使其可见.将hidden属性设置为false,然后显示动画.反向将仅用于在完成块中添加时隐藏.
_Language.hidden = false;
[UIView animateWithDuration:1.0 ...
Run Code Online (Sandbox Code Playgroud)
并从完成块中删除它,
completion:^(BOOL finished) {
}];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14015 次 |
最近记录: |