我刚刚开始玩NSAnimation和核心动画,但我似乎不能从屏幕外滑动的NSImage动画(我也不能让旋转动画工作,但这是另一个问题)。当我在窗口外初始化图像(将NSImage设置为其NSImageView属性)时,不会显示任何图像。我到底做错了什么,导致NSImage不能重绘?
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];发布于 2013-06-20 01:50:48
你的代码很混乱。
首先需要打开视图的图层支持。
然后,您可以使用动画代理更改要设置动画的属性、或您要使用CAAnimation为其层设置动画,而不是同时使用两者。
为了简单地设置其位置的动画,使用动画代理更为简单。
这些天我主要是为iOS编写代码,所以我很少使用动画代理。
我相信你应该能够摆脱你的CAAnimation,并且你在动画代理上设置帧的代码应该可以工作。然而,你需要设置标志来使你的视图分层,这样才能正常工作。
在将视图添加到其superview之后添加以下代码:
imageView.wantsLayer = YES;https://stackoverflow.com/questions/17126852
复制相似问题