带有翻转的documentView的NSScollView导致奇怪的动画问题

时间:2015-04-24 03:41:07

标签: macos cocoa core-animation nsview nsscrollview

我遇到了最奇怪的事情。我正在开发一个项目,我开始注意到这个问题,所以我创建了一个沙盒测试来简化问题,看看我是否能解决它。

我有一个基于文档的应用程序,带有一个窗口控制器。里面是这些对象:

  • 使用isFlipped = YES
  • 对NSScrollView进行子类化
  • 使用isFlipped = YES对NSView进行子类化,这是上面的scrollview中的documentView。
  • 文档视图中的NSImage

然后我尝试将图像淡化为alpha 0,如下所示:

- (void)windowDidLoad {
    [super windowDidLoad];
    [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(test) userInfo:nil repeats:FALSE];
}

- (void) test {
    [NSAnimationContext beginGrouping];
    [[NSAnimationContext currentContext] setDuration:4];
    self.errorOutline.animator.alphaValue = 0;
    [NSAnimationContext endGrouping];
}

这就是它在Xcode中的样子:

Xcode Layout

这是开始制作动画时会发生的事情:

While animating it breaks up

我注意到如果我在动画时不断调整窗口的大小,我会得到一个重影图像效果,我会看到图像的其余部分。

另一个奇怪的问题是,如果我设置isFlipped = NO,那么问题就不会发生。这不是一个选项 - 我正在翻转视图的全部原因是更容易管理添加单元格而不向后计算位置和高度。

更新:我提交了一个雷达错误,因为这是一个非常奇怪的问题。 http://openradar.appspot.com/20680289

0 个答案:

没有答案