我使用CALayer
通过drawLayer:inContext
委托方法显示路径,该方法位于图层所属视图的视图控制器中。每次用户在屏幕上移动他们的手指时,路径都会更新并重新绘制图层。但是,绘图跟不上触摸:显示路径的最后两个点总是有一点延迟。它也会闪烁,但只有在再次显示最后两三分时才会闪烁。如果我只是在视图的drawRect
中进行绘制,它可以正常工作,绘图肯定足够快。
有谁知道它为什么会这样?我怀疑它与图层缓冲有关,但我找不到任何关于它的文档。
答案 0 :(得分:1)
[UIView new]
只是[[UIView alloc] init]
的缩写。
答案 1 :(得分:1)
在setNeedsDisplay
方法::
[CATransaction begin];
[CATransaction setValue:[NSNumber numberWithFloat:someDelay] forKey:kCATransactionAnimationDuration];
[aLayer setNeedsDisplay];
[CATransaction commit];
答案 2 :(得分:0)
使用layer hosting view可能会有更好的运气。
不使用drawLayer:inContext:方法,而是设置您想要的视图并向其添加CALayer:
UIView *layerHosting = [[UIView alloc] initWithFrame:frame];
[layerHosting setLayer:[[CALayer new] autorelease]];
希望有所帮助!