6

我正在做一个需要:

  • 具有从包含 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 中,悬停层似乎无法在正确的单元格中呈现) .

4

1 回答 1

0

NSView 兄弟姐妹绝对允许重​​叠。前段时间我有同样的问题,并得到了一些苹果工程师的确认:是否允许层支持的 NSView 兄弟重叠?

关于 IKImageBrowserView:我的印象是它或多或少被用作“黑匣子”,很像 iOS 上的 UITableView:您可以自定义单元格和一些行为,但最好不要弄乱它通过直接向其添加子视图来实现内部视图层次结构。如果您需要除了标准的、记录在案的行为之外的任何东西,您最好编写自己的解决方案。做起来应该不难,特别是因为您可以访问 Image I/O 来满足所有缩略图和预览需求:https ://developer.apple.com/library/mac/documentation/graphicsimaging/Conceptual/ImageIOGuide/ imageio_source/ikpg_source.html#//apple_ref/doc/uid/TP40005462-CH218-SW3

希望这可以帮助!

于 2013-10-17T15:54:35.293 回答