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