我正在进行的项目需要:

  • 具有从包含IKImageBrowserView的 View 到另一个 View 的过渡动画;
  • 当鼠标在 View 上移动时,
  • 在每个IKImageBrowserCell上都有一个悬停叠加层;和
  • 的NSView与图像浏览器 View
  • 的一部分重叠

    我遇到的问题如下:
  • 如果IKImageBrowserView没有层支持,则IKImageBrowserView将不遵守z顺序-> IKImageBrowserView始终位于顶部,即使 View 位于其顶部(或在该 View 中位于其上)
  • 如果图像浏览器 View 是基于图层的,则z顺序问题得到解决,但IKImageBrowserView中的自定义行为会中断(例如,悬停)->例如,在Mac 10.7中,浏览器的选择层和前景层单元格不会随着滚动 View 的“反弹”区域中的图像一起移动。

  • 我需要图层支持来制作过渡动画。

    出于性能原因,我知道Apple不建议 sibling 意见重叠。在某些情况下,这是无法避免的。

    我已就此向Apple提交了技术支持事件。他们已将其升级为工程师,但他们也建议我提交错误报告。

    以前有人遇到过这种情况吗?如果是,您采用了什么解决方法?

    对于任何好奇的人,示例项目都在这里https://github.com/jdbenito/nerdery。在应用程序委托(delegate)中,尝试注释/取消注释-setWantsLayer:行。

    当IKImageBrowserView被层支持时,它开始表现出奇怪的行为。根据操作系统的不同,症状也有所不同(例如,在Mac OS 10.6中,悬停将一直工作,直到您切换到另一个选项卡并返回IKImageBrowserView。在Mac OS 10.8中,悬停图层似乎无法在正确的单元格中呈现) 。

    最佳答案

    绝对允许NSView sibling 重叠。不久前,我遇到了同样的问题,并得到了一些苹果工程师的确认:Are layer-backed NSView siblings allowed to overlap?

    关于IKImageBrowserView:我的印象是,它或多或少地打算用作“黑匣子”,就像iOS上的UITableView一样:您可以自定义单元格和某些行为,但最好不要弄乱它的外观内部 View 层次结构,方法是直接向其添加 subview 。如果除了标准的,已记录的行为外,还需要其他任何东西,那么最好编写自己的解决方案。这样做绝非难事,尤其是因为您可以访问所有缩略图和预览需求的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

    希望这可以帮助!

    关于objective-c - 处理支持图层的IKImageBrowserView,Z顺序和其他问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13301118/

    10-10 20:30