动画setHidden:在NSView上通过Cocoa绑定

phl*_*uid 5 cocoa core-animation interface-builder calayer cocoa-bindings

我目前正在对一个项目进行最后的修改.

很多(如果不是全部)UI逻辑当前依赖于Cocoa Bindings.一些用户界面元素(标签,按钮等)定义了"隐藏"绑定.触发某些事件时,将切换这些元素可见性.

我正在尝试为可见性变化设置动画(通过设置不透明度,甚至可能是缩放比例).这可以通过多种方式轻松完成,可以通过设置相关的图层属性,将动画添加到图层等等.但是,由于我试图完全依赖绑定行为,我"不能"真正做到这直接.

我尝试使用Layer动作实现一个实现,通过定义键kCAOnOrderInkCAOnOrderOut相关元素的动作,但它确实不起作用,因为setHidden:它最有可能是触发NSView而不是CALayer- 这是有意义的.

所以,我的问题是:在Cocoa绑定调用setHidden:时,你将如何在NSView上制作动画setHidden:.

谢谢.

Mat*_*ong 0

对 setHidden 进行动画处理不会有任何视觉效果,因为它要么打开,要么关闭。如果您想设置可见性动画,请使用 setAlpha(或图层上的 setOpacity)。这些值介于 0.0 和 1.0 之间。如果您需要为了状态信息而设置隐藏标志,请调用将其传递给一个选择器,该选择器在动画完成后将-performSelector:withObject:afterDelay隐藏值设置为您需要的值。或者,您可以设置一个委托,以便在动画完成时回调显式动画,然后调用 setHidden。