我想知道我的iPhone应用程序如何利用特定的屏幕截图UIView作为UIImage.
我试过这段代码,但我得到的只是一张空白图片.
UIGraphicsBeginImageContext(CGSizeMake(320,480));
CGContextRef context = UIGraphicsGetCurrentContext();
[myUIView.layer drawInContext:context];
UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)
myUIView尺寸为320x480,并且有一些子视图.这样做的正确方法是什么?
在iOS7之前我使用UIGetScreenImage()函数来轻松截取屏幕截图,但在iOS7中,它已被弃用,现在有什么好方法可以存档吗?谢谢!
另外:我需要在任何视图中截取整个屏幕的截图
更新:从某些版本的iOS 8(可能是8.3)开始,即使在飞行模式下也可以打开GPS硬件(即,即使在飞行模式下也可以获得GPS定位).这使得这个问题没有实际意义.
-
是否有可能以编程方式确定iPhone是否处于飞行模式?我特别想知道它是否处于AirPlane模式,而不是拥有(或没有)网络连接.这个问题已经被问了很多,但我看到的每个答案都提到了Apple的Reachability代码来确定网络连接是否可用.
我正在编写一款使用iPhone GPS的应用程序.目前,如果启用了飞行模式并启动了我的应用程序,我的位置管理器对象仍然显示存在并且仍然显示为我提供了一个(缓存?)位置.状态栏中会显示小GPS图标,告诉我我的应用正在确定位置.

我想知道手机是否处于飞行模式,以便我无法初始化位置管理器对象,我可以更改我的UI以向用户指示GPS功能不可用.
显然,无论网络连接如何,都可以使用GPS功能,因此缺乏网络连接使我成为飞机模式的不良代理.在飞行模式下,我似乎没有得到任何特定的错误(通过locationManager:didFailWithError),只是我假设的一般错误可能来自多个来源.
我正在开发一个iOS应用程序,我需要将我的iOS应用程序屏幕共享为网络数据包转换为另一个服务器目标.我可以使用套接字编程来发送和接收网络数据包.但是,我想知道,如何才能将我的iOS应用程序本机屏幕(视图)转换为数据包?例如:在Windows桌面中,它通过RDP和视频驱动程序实现将桌面屏幕转换为数据包.
请告知是否有人遇到过这样的事情.
谢谢.
Getsy.
我正在寻找适当的方式来拍摄整个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();
Run Code Online (Sandbox Code Playgroud)
但它也没有抓住键盘.它看起来像keyWindow不包括键盘视图.
顺便说一下,我需要UIImage最终结果,UIView所以我不能使用其他快照API.
有任何想法,并以最佳表现?
如何保存从代码中截取的屏幕截图,并将其放入应用程序中的电子邮件中?
ios ×5
objective-c ×5
iphone ×3
screenshot ×3
cocoa-touch ×1
cydia ×1
email ×1
snapshot ×1
sockets ×1
tweak ×1
uikeyboard ×1
uiview ×1
uiwindow ×1