Objective c 调整CATiledLayer的大小';s使用缩放变换与边界操纵
我的图层托管工作区工作正常,因此当工作区大幅缩小时,使用CATiledLayers处理数百幅图像效果很好。所有图像都使用较低的分辨率表示,我的应用程序在平移和缩放大量图像时响应速度更快 但是,在我的应用程序中,我还为用户提供了通过调整大小手柄调整图层大小的功能。在我将图像层转换为使用CATiledLayers之前,我通过根据调整大小增量(鼠标拖动)操纵图像层的边界来调整层大小,效果很好。但现在有了CATiledLayers,当我通过边界操纵调整图层大小和通过缩放变换缩放/取消缩放工作空间时,这会导致CATiledLayers变得混乱 特别是,如果我将CATiledLayer的大小调整为宽度/高度大小的一半(面积的1/4),则其内部的图像将突然进一步缩放到调整大小的帧的1/2,留下3/4的帧为空。这似乎正是调用内部CATiledLayer逻辑以提供低分辨率图像表示的时候。如果我不触摸调整大小处理程序,只缩放/取消缩放工作区,效果很好Objective c 调整CATiledLayer的大小';s使用缩放变换与边界操纵,objective-c,cocoa,resize,calayer,catiledlayer,Objective C,Cocoa,Resize,Calayer,Catiledlayer,我的图层托管工作区工作正常,因此当工作区大幅缩小时,使用CATiledLayers处理数百幅图像效果很好。所有图像都使用较低的分辨率表示,我的应用程序在平移和缩放大量图像时响应速度更快 但是,在我的应用程序中,我还为用户提供了通过调整大小手柄调整图层大小的功能。在我将图像层转换为使用CATiledLayers之前,我通过根据调整大小增量(鼠标拖动)操纵图像层的边界来调整层大小,效果很好。但现在有了CATiledLayers,当我通过边界操纵调整图层大小和通过缩放变换缩放/取消缩放工作空间时,这会
是否有一种方法可以使缩放/调整大小与CATiledLayers配合使用,或者我必须将层调整逻辑转换为使用缩放变换而不是边界操作吗?我最终解决了这个问题,通过覆盖自定义图像层类的setBounds:method以缩放包含CATiledLayer的对象,并相应地重新定位,将层调整逻辑转换为使用缩放变换。此外,确保CATiledLayer的autoresizingMask设置为kCALayerNotSizable也很重要,因为我们正在setBounds:中手动处理大小调整
注意:一定要调用setBounds:的超类实现。我最终解决了这个问题,将我的图层调整逻辑转换为使用缩放变换,方法是覆盖自定义图像图层类的setBounds:方法,以缩放它包含的CATiledLayer,并相应地重新定位。此外,确保CATiledLayer的autoresizingMask设置为kCALayerNotSizable也很重要,因为我们正在setBounds:中手动处理大小调整。注意:请确保调用超类的setBounds实现:。层没有自动调整大小的掩码--是否已将层视图上的自动调整大小掩码设置为UIViewAutoresizingNone?层确实具有适用于Mac 10.5/6桌面Calayer的自动调整大小掩码。对于iOS,你是对的,他们不是。然而,我不是指iOS。