ios – 如何使用CALayer renderInContext并保持透视变换?

ios – 如何使用CALayer renderInContext并保持透视变换?,第1张

概述如何使用CALayer renderInContext并保留图层的透视变换(m34)?看起来这个方法假设一个Identity变换.我已经尝试过改变上下文这样的事情,这对于平移,旋转和缩放来说很好,但似乎没有办法保持3D变换的视角. 也许是提出这个问题的更好方法:如何在绘制CGContextRef时应用透视图? 您可能希望查看方法drawViewHierarchyInRect:afterScreen 如何使用CALayer renderInContext并保留图层的透视变换(m34)?看起来这个方法假设一个IDentity变换.我已经尝试过改变上下文这样的事情,这对于平移,旋转和缩放来说很好,但似乎没有办法保持3D变换的视角.

也许是提出这个问题的更好方法:如何在绘制CGContextRef时应用透视图?

解决方法 您可能希望查看方法drawVIEwHIErarchyInRect:afterScreenUpdates:自iOS 7.0以来提供的方法.将该方法应用于包含CALayers的视图将保持其3D变换.

示例代码:

BOol opaqueBackground = YES;UIGraphicsBeginImageContextWithOptions(theVIEwContainingYourCALayers.bounds.size,!opaqueBackground,0);[theVIEwContainingYourCALayers drawVIEwHIErarchyInRect:theVIEwContainingYourCALayers.bounds afterScreenUpdates:YES];[UIImage *image = UIGraphicsGetimageFromCurrentimageContext();UIGraphicsEndImageContext();

正如matt指出的那样,仅仅依赖于renderInContext:是不可能的,因为它忽略了仿射之外的任何转换.

迟到的答案,但我希望它仍然有帮助.

总结

以上是内存溢出为你收集整理的ios – 如何使用CALayer renderInContext并保持透视变换?全部内容,希望文章能够帮你解决ios – 如何使用CALayer renderInContext并保持透视变换?所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1069562.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存