Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 目标C-给定一个图层,如何检查它是否完成绘图?_Ios_Objective C_Layer - Fatal编程技术网

Ios 目标C-给定一个图层,如何检查它是否完成绘图?

Ios 目标C-给定一个图层,如何检查它是否完成绘图?,ios,objective-c,layer,Ios,Objective C,Layer,我试图检查一个图层是否完成了绘图,并且它已经准备好接受点击 我尝试在图层上调用各种命令(needsDisplay,needsLayout等),但它们都返回相同的值,与绘图状态无关。我认为您应该使用的一种方法是检查图层帧大小。如果尺寸为pozitive,则表示显示了该图层,并且完成了绘图 CALayer *newlayer = [[CALayer alloc]init]; newlayer.backgroundColor = [UIColor orangeColor].CGColo

我试图检查一个图层是否完成了绘图,并且它已经准备好接受点击


我尝试在图层上调用各种命令(
needsDisplay
needsLayout
等),但它们都返回相同的值,与绘图状态无关。

我认为您应该使用的一种方法是检查图层帧大小。如果尺寸为pozitive,则表示显示了该图层,并且完成了绘图

    CALayer *newlayer = [[CALayer alloc]init];
    newlayer.backgroundColor = [UIColor orangeColor].CGColor;
    newlayer.cornerRadius = 20.0;
    newlayer.frame = CGRectMake(100.0f, 100.0f, 200.0f, 200.0f);

    [self.view.layer addSublayer:newlayer];
    if(newlayer.frame.size.width > 0 || newlayer.frame.size.height >0) {
    NSLog(@"added to view");
    }
例如,如果在图层中绘制图像,则可以记录调用UIGraphicsSendImageContext()的时刻;你已经有了自己的形象

  • 默认动画:

    访问层中对象的presentationLayer特性。动画正在进行时,可以检索此对象并使用它获取这些动画的当前值

  • 自定义动画:

    使用setCompletionBlock:方法向当前事务添加完成块。当事务中的所有动画完成时,事务将执行完成块

    将代理指定给CAAnimation对象,并实现animationDidStart:和animationDidStop:finished:代理方法


  • “完成的图纸”是什么意思?你的意思是“在屏幕上实际可见”吗?不,我的意思是“它准备好接收点击了”…@NikolaiRuhe在我的例子中,我想知道它什么时候准备好执行,例如属性动画
    myLayer.endAngle=CGFloat(M_PI)
    。创建动画后,动画立即不起作用,它只显示结束状态。它的工作延迟为0.1。没有看到要重写、委派或任何方法。请提供此建议的基本原理。框架大小与绘图状态的关系如何?也许检查GLCHECKFRAMEBERSTATUS是一种更好的方法。