objective-c – 在调整视图大小之前,不会显示新的CALayer.contents

objective-c – 在调整视图大小之前,不会显示新的CALayer.contents,第1张

概述我有一个需要显示视频帧的CALayer.每次渲染帧时(作为CG ImageRef),都会调用此方法: - (void)displayFrame:(CGImageRef)frame { [view layer].contents = (id)frame;} 奇怪的是,这首先不会显示任何东西.每次调整视图大小时,都会显示一个新帧,但会再次调整视图大小. 我该如何解决? 是displayFra 我有一个需要显示视频帧的CALayer.每次渲染帧时(作为CG ImageRef),都会调用此方法:

- (voID)displayFrame:(CGImageRef)frame {    [vIEw layer].contents = (ID)frame;}

奇怪的是,这首先不会显示任何东西.每次调整视图大小时,都会显示一个新帧,但会再次调整视图大小.

我该如何解决?

解决方法 是displayFrame:在主线程上调用吗?如果没有,那么我发现它不会总是画画.您可以尝试使用[CATransaction flush]强制更新它,如:

- (voID)displayFrame:(CGImageRef)frame {    [vIEw layer].contents = (ID)frame;    [CATransaction flush];}

如果这不起作用,那么您可以尝试包含图层构造代码,以帮助识别该图层的任何特性.

总结

以上是内存溢出为你收集整理的objective-c – 在调整视图大小之前,不会显示新的CALayer.contents全部内容,希望文章能够帮你解决objective-c – 在调整视图大小之前,不会显示新的CALayer.contents所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1002145.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存