gpt4 book ai didi

objective-c - 使用比例变换与边界操作调整 CATiledLayer 的大小

转载 作者:行者123 更新时间:2023-12-03 17:44:31 26 4
gpt4 key购买 nike

我已经让我的图层托管工作区正常工作,因此当工作区大幅缩小时,使用 CATiledLayers 处理数百个图像可以很好地工作。所有图像都使用较低分辨率的表示形式,并且我的应用程序在平移和缩放大量图像时响应速度更快。

但是,在我的应用程序中,我还为用户提供了使用调整大小 handle 调整图层大小的功能。在我将图像层转换为使用 CATiledLayers 之前,我通过根据调整大小增量(鼠标拖动)操作图像层的边界来调整图层大小,并且效果很好。但现在有了 CATiledLayers,当我通过边界操作混合调整图层大小以及通过比例变换缩放/取消缩放工作区时,这会导致 CATiledLayers 感到困惑。

具体来说,如果我将 CATiledLayer 的大小调整为宽度/高度大小的一半(面积的 1/4),则其中的图像将突然缩放到调整大小后的帧的 1/2,从而使帧的 3/4 为空。这似乎正是调用内部 CATiledLayer 逻辑以提供较低分辨率图像表示的时间。如果我不触摸调整大小处理程序而只是缩放/取消缩放工作区,它就可以正常工作。

有没有办法让缩放/调整大小与 CATiledLayers 一起很好地发挥作用,或者我是否必须将我的图层调整大小逻辑转换为使用缩放变换而不是边界操作?

最佳答案

我最终通过将我的图层调整大小逻辑转换为使用缩放变换来解决这个问题,方法是重写我的自定义图像图层类的 setBounds: 方法来缩放它包含的 CATiledLayer,并相应地重新定位。此外,确保 CATiledLayer 的 autoresizingMask 设置为 kCALayerNotSizing 也很重要,因为我们在 setBounds 中手动处理大小调整:。

注意:一定要调用父类(super class)的 setBounds: 实现。

关于objective-c - 使用比例变换与边界操作调整 CATiledLayer 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3500090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com