spu*_*fle 4 cocoa core-animation objective-c calayer cgimage
我有一个CALayer
需要显示视频帧.每次渲染一个帧(作为a CGImageRef
)时,都会调用此方法:
- (void)displayFrame:(CGImageRef)frame {
[view layer].contents = (id)frame;
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,这首先不会显示任何东西.每次view
调整大小时,frame
都会显示一个新的,但直到view
再次调整大小.
我该如何解决?
是displayFrame:在主线程上调用吗?如果没有,那么我发现它不会总是画画.您可以尝试使用[CATransaction flush]强制更新它,如:
- (void)displayFrame:(CGImageRef)frame {
[view layer].contents = (id)frame;
[CATransaction flush];
}
Run Code Online (Sandbox Code Playgroud)
如果这不起作用,那么您可以尝试包含图层构造代码,以帮助识别该图层的任何特性.
归档时间: |
|
查看次数: |
2751 次 |
最近记录: |