Cocoa touch 让一个物体淡入淡出

Cocoa touch 让一个物体淡入淡出,cocoa-touch,ipad,Cocoa Touch,Ipad,我有一个视图,当用户点击主视图时,该视图设置其隐藏。我需要视野淡入淡出,这样它看起来比消失更平滑 以下是我迄今为止的代码(它位于触摸事件中): 只需像这样包装代码: [UIView beginAnimations:nil context:NULL]; if (!isShowing) { isShowing = YES; myView.hidden = NO } else { isShowing = NO; myView.hidden = YES } [UIVi

我有一个视图,当用户点击主视图时,该视图设置其
隐藏。我需要视野淡入淡出,这样它看起来比消失更平滑

以下是我迄今为止的代码(它位于触摸事件中):


只需像这样包装代码:

[UIView beginAnimations:nil context:NULL];

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

[UIView commitAnimations];
或者简化为:

[UIView beginAnimations:nil context:NULL];

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

[UIView commitAnimations];

您可能还想使用
UIView
setAnimationDuration:
setAnimationCurve:
,或
setAnimationBeginsFromCurrentState:
方法自定义视图淡入淡出的方式。

我从未有幸设置隐藏动画。相反,为alpha设置动画。

Hmmmm。。。无法让它工作。我需要用什么替换UIView吗?我对cocoa还是新手。UIView是拥有这些方法的类。难道风景根本就没有出现过吗?您确定它存在并且是屏幕上任何视图的子视图吗?是的,该视图确实显示并且是主视图的子视图。我试过做[UIView setAnimationDuration:5.0];但是运气不好。设置
隐藏的
动画有效吗?现在我研究它,我想你可能需要设置
alpha
属性的动画。我确实将它切换到alpha,然后遇到了另一个问题。隐藏的是隐藏它之前,它可以动画出来,所以我只是删除隐藏和使用阿尔法。这正是我做的。将.alpha属性从1设置为隐藏,从0设置为显示。记住将它们包装在beginAnimation和commitAnimation块中。或者使用块形式(
animateWithDuration:animations:
)。“hidden”是一个布尔属性。它无法设置动画。实际上,为alpha设置动画是正确的方法
[UIView beginAnimations:nil context:NULL];

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

[UIView commitAnimations];