我正在做一个需要:
- 具有从包含 IKImageBrowserView 的视图到另一个视图的过渡动画;
- 当鼠标在视图中移动时,在每个 IKImageBrowserCell 上都有一个悬停覆盖;和
- 让 NSView 与图像浏览器视图的一部分重叠
我遇到的问题如下:
- 如果 IKImageBrowserView 不是层支持的,则 IKImageBrowserView 不尊重 z 顺序-> IKImageBrowserView 保持在顶部,即使视图位于其顶部(或就此而言)
- 如果图像浏览器视图是图层支持的,则 z 排序问题得到解决,但 IKImageBrowserView 中的自定义行为会中断(例如悬停)--> 例如,在 Mac 10.7 中,浏览器单元格的选择层和前景层不要与滚动视图的“反弹”区域中的图像一起移动。
我需要图层支持来做过渡动画。
出于性能原因,我知道 Apple 不建议兄弟视图重叠。虽然有些情况是无法避免的。
我已就此向 Apple 提交了技术支持事件。他们已将其上报给工程师,但他们也建议我提交错误报告。
以前有没有人遇到过这种情况,如果有,您采用了什么解决方法?
对于任何好奇的人,示例项目在这里https://github.com/jdbenito/nerdery。在应用程序委托中,尝试注释/取消注释 -setWantsLayer: 行。
当 IKImageBrowserView 被 layer-backed 时,它开始表现出奇怪的行为。并且症状因操作系统而异(例如,在 Mac OS 10.6 中,悬停一直有效,直到您切换到另一个选项卡并返回 IKImageBrowserView。在 Mac OS 10.8 中,悬停层似乎无法在正确的单元格中呈现) .