首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用动画淡出NSView?

如何用动画淡出NSView?
EN

Stack Overflow用户
提问于 2014-08-23 05:55:11
回答 1查看 16.5K关注 0票数 33

这很简单,所以我无论如何也找不到哪里出了问题,我翻阅了文档作为指南,但它仍然不起作用。我在一个更大的视图中有一个视图。IBAction应该淡出内部视图...就这样。下面是我得到的信息:

代码语言:javascript
运行
复制
NSViewAnimation *theAnim;
NSMutableDictionary *viewDict;

// Create the attributes dictionary for the view.
viewDict = [NSMutableDictionary dictionaryWithCapacity:2];

// Set the target object to be the view.
[viewDict setObject:_innerView forKey:NSViewAnimationTargetKey];

// Set this view to fade out
[viewDict setObject:NSViewAnimationFadeOutEffect forKey:NSViewAnimationEffectKey];

theAnim = [[NSViewAnimation alloc] initWithViewAnimations:@[viewDict]];

// Set some additional attributes for the animation.
[theAnim setDuration:1.0];

// Run the animation.
[theAnim startAnimation];

我用NSLog检查了viewDicttheAnimnil也没有。我很可能是从一个老程序中复制出来的,现在找不到哪里出了问题。

我使用的是Xcode 5.1.1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-23 11:27:20

现代的方法要简单得多:

代码语言:javascript
运行
复制
[NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
    context.duration = 1;
    view.animator.alphaValue = 0;
}
completionHandler:^{
    view.hidden = YES;
    view.alphaValue = 1;
}];

如果视图层次结构是分层的,那么这样做就足够了:

代码语言:javascript
运行
复制
view.animator.hidden = YES;
票数 77
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25456080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档