在升级到iOS17后你会发现,之前版本运行的很好,这个版本突然会出现一个运行闪退。报错日志为***** Assertion failure in void _UIGraphicsBeginImageContextWithOptions(CGSize, BOOL, CGFloat, BOOL)(), UIGraphics.m:410**

跟踪到具体的报错位置如下所示:
UIGraphicsBeginImageContextWithOptions(size, NO, 0);

根据查阅的资料,iOS 17上使用UIGraphicsBeginImageContext()
,size
为0时,就会报相同的错误。
我估计我这个问题应该是top
和bottom
设置为0的原因,内部也是通过UIGraphicsBeginImageContext()
实现的导致;
看官方API时,也会发现UIGraphicsBeginImageContext()这个方法也被废弃了被
UIGraphicsImageRenderer替代,如下所示:

所以根据API的提示,为了解决这个问题,我们就需要去改造当前方法,如下所示:

这样就解决了,新版本崩溃问题的;