让一个物体淡入和淡出存在

nos*_*e25 2 cocoa-touch ipad

我有一个视图,hidden当用户点击主视图时设置它.我需要视图淡入和淡出存在,因此它看起来比消失更平滑.

到目前为止我的代码(这是一个触摸事件):

    if (!isShowing) {
        isShowing = YES;
        myView.hidden = YES;
                    //Needs to fade out here


}

    else {
        isShowing = NO;
        myView.hidden = NO;
                    //Needs to fade in here

}
Run Code Online (Sandbox Code Playgroud)

Dav*_*ham 6

我从来没有幸运动画隐藏.相反,动画alpha.


Kri*_*son 5

只需将您的代码包装成如下:

[UIView beginAnimations:nil context:NULL];

if (!isShowing) {
    isShowing = YES;
    myView.hidden = NO
}
else {
    isShowing = NO;
    myView.hidden = YES
}

[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)

或者将其简化为:

[UIView beginAnimations:nil context:NULL];

isShowing = !isShowing;
myView.hidden = isShowing? NO : YES;

[UIView commitAnimations];
Run Code Online (Sandbox Code Playgroud)

您可能还想使用UIView's setAnimationDuration:,setAnimationCurve:setAnimationBeginsFromCurrentState:方法来自定义视图淡入和淡出的方式.

  • 我确实将其切换为alpha,然后遇到另一个问题.隐藏在它可以动画之前隐藏它所以我只是删除了隐藏和使用的alpha. (3认同)