ios – iPhone快照包括键盘

ios – iPhone快照包括键盘,第1张

概述我正在寻找适当的方式来拍摄整个iPhone屏幕,包括键盘. 我找到了一些快照屏幕的代码: CGRect screenCaptureRect = [UIScreen mainScreen].bounds;UIView *viewWhereYouWantToScreenCapture = [[UIApplication sharedApplication] keyWindow];//screen 我正在寻找适当的方式来拍摄整个iPhone屏幕,包括键盘.

我找到了一些快照屏幕的代码:

CGRect screenCaptureRect = [UIScreen mainScreen].bounds;UIVIEw *vIEwWhereYouWantToScreenCapture = [[UIApplication sharedApplication] keyWindow];//screen capture codeUIGraphicsBeginImageContextWithOptions(screenCaptureRect.size,NO,[UIScreen mainScreen].scale);[vIEwWhereYouWantToScreenCapture drawVIEwHIErarchyInRect:screenCaptureRect afterScreenUpdates:NO];UIImage *capturedImage = UIGraphicsGetimageFromCurrentimageContext();UIGraphicsEndImageContext();

但它也没有抓住键盘.它看起来像keyWindow不包括键盘视图.

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

有任何想法,并以最佳表现?

解决方法 键盘放在其他窗口中.并且在iOS9键盘配件中放置了不同的一个.所以最好的解决方案是渲染所有窗口.

这是工作代码:

- (UIImage*)fullScreenShot {    CGSize imgSize = [UIScreen mainScreen].bounds.size;    UIGraphicsBeginImageContextWithOptions(imgSize,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快照包括键盘全部内容,希望文章能够帮你解决ios – iPhone快照包括键盘所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1008495.html

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

发表评论

登录后才能评论

评论列表(0条)

保存