gpt4 book ai didi

ios - 包括键盘的 iPhone 快照

转载 作者:可可西里 更新时间:2023-11-01 06:20:39 25 4
gpt4 key购买 nike

我正在寻找对包括键盘在内的整个 iPhone 屏幕进行快照的正确方法。

我找到了一些截图屏幕的代码:

CGRect screenCaptureRect = [UIScreen mainScreen].bounds;
UIView *viewWhereYouWantToScreenCapture = [[UIApplication sharedApplication] keyWindow];
//screen capture code
UIGraphicsBeginImageContextWithOptions(screenCaptureRect.size, NO, [UIScreen mainScreen].scale);
[viewWhereYouWantToScreenCapture drawViewHierarchyInRect:screenCaptureRect afterScreenUpdates:NO];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

但它也不能捕获键盘。看起来 keyWindow 不包含键盘 View 。

顺便说一句,我需要 UIImage 作为最终结果,而不是 UIView,所以我不能使用其他快照 API。

有什么想法可以做到这一点并获得最佳性能吗?

最佳答案

键盘放在其他窗口。而在 iOS9 中键盘配件放置在不同的位置。所以最好的解决方案是渲染所有窗口。

这是工作代码:

- (UIImage*)fullScreenShot {
CGSize imgSize = [UIScreen mainScreen].bounds.size;
UIGraphicsBeginImageContextWithOptions(imgSize, NO, 0);
for (UIWindow* window in [UIApplication sharedApplication].windows) {
if (![window respondsToSelector:@selector(screen)] || window.screen == [UIScreen mainScreen]) {
[window drawViewHierarchyInRect:window.bounds afterScreenUpdates:YES];
}
}
UIImage* img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}

关于ios - 包括键盘的 iPhone 快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28169843/

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