kaa*_*101 15 cocoa core-animation nswindow
我试图用一个很好的缓动动画(EaseOut)来调整NSWindow(主要的)的大小.
我可以使用[NSWindow animator]
但我没有找到添加缓动效果的方法.
你有想法或代码样本可以帮助我做到这一点吗?
Ann*_*nne 33
选项1
float Y = 100;
float X = 200;
NSRect frame = [window frame];
frame.origin.y -= Y;
frame.size.height += Y;
frame.size.width += X;
[window setFrame:frame display:YES animate:YES];
Run Code Online (Sandbox Code Playgroud)
选项2
float Y = 100;
float X = 200;
NSRect frame = [window frame];
frame.origin.y -= Y;
frame.size.height += Y;
frame.size.width += X;
NSDictionary *windowResize = @{
NSViewAnimationTargetKey: window,
NSViewAnimationEndFrameKey: [NSValue valueWithRect:frame]
};
NSDictionary *oldFadeOut = @{
NSViewAnimationTargetKey: [NSNull null],
NSViewAnimationEffectKey: NSViewAnimationFadeOutEffect
};
NSDictionary *newFadeIn = @{
NSViewAnimationTargetKey: [NSNull null],
NSViewAnimationEffectKey: NSViewAnimationFadeInEffect
};
NSArray *animations = @[windowResize, newFadeIn, oldFadeOut];
NSViewAnimation *animation = [[NSViewAnimation alloc] initWithViewAnimations: animations];
[animation setAnimationBlockingMode: NSAnimationBlocking];
[animation setAnimationCurve: NSAnimationEaseIn];
[animation setDuration: 2];
[animation startAnimation];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8074 次 |
最近记录: |