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 次 |
| 最近记录: |