Cocoa提供了一系列动画形式的窗口缩放特效,你也许经常能够看到他们,比如在Pages里的检查器,或是一些应用程序的系统预置中,在你选择不同选项的时候,你就会看到窗口以动画的形式自动改变大小。如何实现这种效果呢?请阅读本文。

 

使用setFrame:display:animate:对窗口进行缩放即可以动画形式呈现。

需要记住的是,Cocoa坐标系是以左下角为原点,这点其实有点难受。你希望在缩放的时候左上角固定,所以你需要同时修改originsize属性。

 
float delta = 缩放值;
NSRect frame = [window frame];
frame.origin.y -= delta;
frame.size.height += delta;
 
[window setFrame: frame
                    display: YES
                    animate: YES];
 
在自己的程序里试试看吧。