gpt4 book ai didi

objective-c - 核心动画和 CALayers 中的残留/痕迹

转载 作者:行者123 更新时间:2023-12-03 16:48:45 26 4
gpt4 key购买 nike

我正在制作一个 Cocoa 应用程序,使用 Core Animation 来创建自定义 UI。然而,每当我拖动一些图层时,它们通常会在其他图层上留下一些“残留物/痕迹”。

到目前为止,我的猜测是这与我使用[setNeedsDisplay]有关。据我了解,当我拖动图层时,我不需要对该图层调用此方法(因为该图层内没有任何内容更新)。但是留下的残差在其他层上(所以也许他们需要调用该方法?但是我如何知道拖动鼠标已经经过了哪些层?)

例如,大多数绘图都很简单:

// Block view is a subclass of CALayer
@implementation BlockView

-(void)drawInContext:(CGContextRef)context
{
CGRect bounds = CGContextGetClipBoundingBox(context);
CGContextSetFillColorWithColor(context, color);
CGContextFillRect(context, bounds);
}
@end

但是,有时我有多个级别的层(最多 3 个);但我认为这不是问题。

我想知道这可能是什么原因造成的?这个问题很难展示具体的代码示例,但欢迎一些提示或可能的猜测。

最佳答案

一个常见的问题是绘制边界之外。如果您在绘图例程中使用[自框架]而不是[自边界],则可能会发生这种情况。

关于objective-c - 核心动画和 CALayers 中的残留/痕迹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883927/

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