使用推动画查看交换

我想通过将旧视图推到一个新视图(kCATransitionPush类型)中来换出一个视图与另一个视图。要使用CoreAnimation,我需要使用我的观点与CALayers合作。问题是通过setWantsLayer将支持层附加到我的窗口内容视图会扭曲视图中的所有内容。 我不确定这是否与我正在使用NSWindow的子类MAAttachedWindow(http://mattgemmell.com/source)这一事实有关,这是一个HUD风格的透明弹出窗口,附加到屏幕上的另一个元素。 如果需要,我可以提供此失真的屏幕截图。我让动画通过NSViewAnimation工作,但正如许多其他人所经历的那样,NSViewAnimation非常慢。我宁愿使用CoreAnimation但这个问题阻止我使用它。 非常感谢任何见解     
已邀请:

bab

除了非整数坐标的可能性之外,对我来说,文本似乎已被绘制到非不透明缓冲区中。如果在非不透明背景颜色上绘制然后合成,则支持LCD的Quartz文本抗锯齿不起作用。相反,您的图层/视图必须用不透明的背景颜色填充背景,然后在其上方绘制文本。 我们玩过的一个解决方法是: 画出半透明的背景。 使用背景颜色(alpha = 1)绘制文本,并在相同颜色的文本中添加笔划,选择笔触宽度以包含抗锯齿区域(请注意此处的分辨率独立性)。 在正常的“着陆垫”上方绘制文本。 滚动条的问题可能是卷轴声明-isOpaque,但事实并非如此。适当的不透明度和背景颜色渲染应该有所帮助。     
鉴于你的说法,普通的窗户不会出现问题,是时候鹰眼MAAttachedWindow了。在此代码中创建窗口时,我看到的第一件事是:
[self useOptimizedDrawing:YES];
如果你评论那条线会怎么样?接下来要看的是绘图代码。此外,-_redisplay方法会在发生此情况时禁用/重新启用屏幕更新,更新几何体和背景。所有这一切都让我怀疑它与图层支持的视图和动画的交互。     
观察失真如何增加使我认为你的一个或多个观点的界限或框架不是不可或缺的。     

要回复问题请先登录注册