首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从屏幕外滑入NSImage

从屏幕外滑入NSImage
EN

Stack Overflow用户
提问于 2013-06-16 02:46:57
回答 1查看 203关注 0票数 0

我刚刚开始玩NSAnimation和核心动画,但我似乎不能从屏幕外滑动的NSImage动画(我也不能让旋转动画工作,但这是另一个问题)。当我在窗口外初始化图像(将NSImage设置为其NSImageView属性)时,不会显示任何图像。我到底做错了什么,导致NSImage不能重绘?

代码语言:javascript
复制
imageView = [[NSImageView alloc] initWithFrame:NSMakeRect(-818, 0, 818, 494)];
NSImage *image = [NSImage imageNamed:@"image.png"];

[imageView setImage:image];

[mainView addSubview:imageView];

NSRect outFrame = NSMakeRect(678, 0, imageView.frame.size.width, imageView.frame.size.width);

CABasicAnimation *animation = [CABasicAnimation animation];
animation.toValue = [NSValue valueWithRect:outFrame];


NSView *view = self.window.contentView;
view.animations = @{@"frame" : animation};
[[view animator] setFrame:outFrame];
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-20 01:50:48

你的代码很混乱。

首先需要打开视图的图层支持。

然后,您可以使用动画代理更改要设置动画的属性、您要使用CAAnimation为其层设置动画,而不是同时使用两者。

为了简单地设置其位置的动画,使用动画代理更为简单。

这些天我主要是为iOS编写代码,所以我很少使用动画代理。

我相信你应该能够摆脱你的CAAnimation,并且你在动画代理上设置帧的代码应该可以工作。然而,你需要设置标志来使你的视图分层,这样才能正常工作。

在将视图添加到其superview之后添加以下代码:

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

https://stackoverflow.com/questions/17126852

复制
相关文章

相似问题

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