gpt4 book ai didi

ios - 具有非有限位置的子层 [inf inf]

转载 作者:可可西里 更新时间:2023-11-01 03:45:27 33 4
gpt4 key购买 nike

我正在使用用 Objective-C 编写的第三个 CocoaPods 库来截取 UITextView 的屏幕截图。 iOS 8 没问题,但在我更改 iOS 9 和 Swift 2 的语法后,它会抛出错误:

Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'sublayer with non-finite position [inf inf]'

这是库中的代码:

- (UIImage *)screenshotForCroppingRect:(CGRect)croppingRect
{
UIGraphicsBeginImageContextWithOptions(croppingRect.size, NO, [UIScreen mainScreen].scale);
// Create a graphics context and translate it the view we want to crop so
// that even in grabbing (0,0), that origin point now represents the actual
// cropping origin desired:
CGContextRef context = UIGraphicsGetCurrentContext();
if (context == NULL) return nil;

NSLog(@"hiii :%f" , croppingRect.size.width);

CGContextTranslateCTM(context, -croppingRect.origin.x, -croppingRect.origin.y);

[self layoutIfNeeded];
[self.layer renderInContext:context];

UIImage *screenshotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenshotImage;
}

问题是这一行:

[self.layer renderInContext:context];

我意识到这是因为我正在尝试拍摄包含 UIScrollView 的 UIView 的快照。如果我删除 UIScrollView subview ,错误就消失了。

那么这是什么意思呢?

sublayer with non-finite position [inf inf]

有人遇到同样的问题吗?您是如何解决的?

最佳答案

我是这样解决的:

关注这篇文章

https://github.com/facebook/ios-snapshot-test-case/issues/112

错误来 self 使用的库,所以搜索所有文件并找出

CGRectNull

并将它们全部更改为

CGRectZero

这解决了问题。

关于ios - 具有非有限位置的子层 [inf inf],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32919051/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com