我目前正在对一个项目进行最后的修改。
很多(如果不是全部)UI逻辑当前依赖于Cocoa Bindings。 一些用户界面元素(标签,按钮等)定义了“隐藏”绑定。触发某些事件时,会切换这些元素的可见性。
我正在尝试为可见性变化设置动画(通过设置不透明度,甚至可能是缩放比例)。这可以通过多种方式轻松完成,可以通过设置相关的图层属性,将动画添加到图层等等。但是,由于我试图完全依赖绑定行为,我“不能”真正做到这直接。
我尝试使用Layer操作实现一个实现,方法是在相关元素上定义键kCAOnOrderIn
和kCAOnOrderOut
的操作,但它确实不起作用,因为setHidden:
最多可能是NSView
而不是CALayer
触发 - 这是有道理的。
所以,我的问题是:当Cocoa绑定调用setHidden:
时,如何在NSView上设置setHidden:
动画。
谢谢。
答案 0 :(得分:2)
这将淡出NSView ......
[[someView animator] setAlphaValue:0.0f];
答案 1 :(得分:0)
动画setHidden将没有视觉效果,因为它打开或关闭。如果要为可见性设置动画,请改用setAlpha(或图层上的setOpacity)。它们的值介于0.0和1.0之间。如果您需要为状态信息设置隐藏标志,请调用-performSelector:withObject:afterDelay
传递一个选择器,将隐藏值设置为在动画完成后所需的任何值。或者,您可以设置一个委托,以便在动画结束时回调显式动画,然后调用setHidden。
答案 2 :(得分:0)
我建议你看看NSViewAnimation。它需要任何NSView,并可以设置框架,大小或可见性的动画。