`
简单的茶
  • 浏览: 87712 次
  • 性别: Icon_minigender_2
  • 来自: 昆明
社区版块
存档分类
最新评论

iPhone/iPad全屏截图与区域截图的几种方法

 
阅读更多
http://www.cocoachina.com/newbie/tutorial/2012/0905/4709.html


1. 截取本区域(self.view):

UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.width, self.view.frame.size.height));
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

2. 全屏截图:

UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];
    UIGraphicsBeginImageContext(screenWindow.frame.size);
    [screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

以上2种方法真机和模拟器都可以运行.在photo.app里可以看到照片

苹果最新开放的接口函数(全屏截图),已经有人试过了,不会reject:

CGImageRef UIGetScreenImage();
    CGImageRef img = UIGetScreenImage();
    UIImage* scImage=[UIImage imageWithCGImage:img];
    UIImageWriteToSavedPhotosAlbum(scImage, nil, nil, nil);
It still works,but only on-device (not in simulator) .

3. 截图另存为指定名字:

UIWindow *screenWindow = [[UIApplication sharedApplication] keyWindow];

UIGraphicsBeginImageContext(screenWindow.frame.size);
[screenWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

NSData *screenshotPNG = UIImagePNGRepresentation(screenshot);

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSError *error = nil;
[screenshotPNG writeToFile:[documentsDirectory stringByAppendingPathComponent:@"screenshot.png"] options:NSAtomicWrite error:&error];
分享到:
评论

相关推荐

    (0047)-iOS/iPhone/iPAD/iPod源代码-列表(Table)-PopoverTableViewCell

    在iPhone上,这会创建一个具有类似popover外观的全屏视图,但边角会被裁剪以模仿iPad的样式。 4. **内容加载**:在弹出视图中,你需要加载并显示额外的数据。这可能涉及到从模型获取数据,创建新的`UITableView`或`...

    截屏截屏截屏截屏截屏截屏截屏截屏截屏截屏截屏.rar

    在Windows系统中,内置的截图工具提供了几种不同的截图方式。按下`PrtScn`键可以截取整个屏幕,然后粘贴到图像编辑软件如画图或Photoshop中;按下`Alt + PrtScn`则会截取当前活动窗口;而在Windows 10及更高版本中,...

    iOS实现视频播放全屏和取消全屏功能

    iOS实现视频播放全屏和取消全屏功能是iOS开发中常见的一种功能,主要是通过自定义的视频类和全屏vc来实现视频的全屏和取消全屏功能。下面将详细介绍实现视频播放全屏和取消全屏功能的知识点。 一、自定义视频类 在...

    ios弹出视图

    下面我们将深入探讨几种方法: 1. **自定义视图控制器转场**: 使用`UIViewControllerAnimatedTransitioning`和`UIViewControllerTransitioningDelegate`协议,可以创建自定义的转场动画,模拟弹出视图的出现和...

    IOS应用源码——UIPopoverControllerDemo.rar

    在iPhone上,popover通常会全屏显示,而iPad则可以保持其弹出样式。 通过研究`UIPopoverControllerDemo`,开发者不仅可以了解如何创建和使用popover,还能了解到如何在实际项目中优雅地集成这一功能。对于初学者来...

    iOS Object-c 实现界面横竖屏切换源代码

    在iOS中,我们主要通过以下几种方式来处理屏幕方向的切换: 1. **Info.plist配置**:在项目的Info.plist文件中,可以设置应用程序支持的设备方向。例如,如果你想让应用只支持竖屏,可以添加`...

    ios7/8 alert and sheet(oc、swift)

    展示方式通常在iPad上是全屏,iPhone上是底部弹出。创建和显示Sheet的过程与创建Alert类似,只是样式不同。 二、Swift中的Alerts和Sheets 1. Swift的UIAlertController Swift的语法更为简洁,创建...

    swift 弹出框.zip

    如果希望在iPad上获得类似iPhone的全屏效果,可以设置`modalPresentationStyle`为`.fullScreen`。 7. **响应链**: 考虑到响应链的正确性,确保弹出视图的呈现不会被其他未处理的用户交互打断。确保在适当的地方...

    iOS学习课件

    iOS是苹果公司为其移动设备推出的操作系统,包括iPhone、iPad和iPod Touch等。这套课件的目标受众是希望学习iOS开发的用户,特别是那些希望通过Object C语言入门iOS开发的开发者。 描述中强调了该课件是基于iOS开发...

    ios-新功能引导图.zip

    在iOS应用开发中,新功能引导图是一种常见的用户体验设计元素,用于向首次使用或更新应用的用户介绍新的特性和功能。这种设计可以帮助用户快速理解和熟悉应用程序的变化,从而提高用户满意度和使用效率。"ios-新功能...

    【最新版】Fantastical_3.0.13.zip【亲测可用】最好的日历应用程序

    Fantastical具有全新的用户界面,具有多个视图,包括iPhone,iPad和Mac的详细(漂亮)全屏视图。 无论您使用哪种设备,Fantastical都能为您提供所需的视图。使用Fantastical DayTicker和Calendar视图快速查看日历,...

    视频转换工具 iDealshare VideoGo 6.2.1.7190 中文多语.zip

    强大的电影转换器可以转换所有的视频或音频格式,以在各种媒体播放器或便携式设备,如Windows媒体播放器,iTunes,QuickTime的,的iPad,iPhone,iPod,苹果电视,安卓,三星Galaxy,HTC,摩托罗拉Droid的成功回放,...

    iOS自定义风格弹窗

    4. **自适应性**:弹窗应能适应不同尺寸的屏幕,包括iPhone和iPad,以及横竖屏切换。 5. **多语言支持**:如果应用支持多语言,弹窗中的文字也需要提供相应的国际化处理。 6. **可扩展性**:为了满足未来需求的...

    【动态模板】苹果IOS星空通用论文答辩模板.zip

    开发的移动操作系统,主要运行于iPhone、iPad和iPod touch等设备。它是全球第二大智能手机操作系统,以其流畅的用户体验和严格的App Store审核制度而闻名。 2. iOS架构:iOS基于Darwin操作系统,由四个主要层次组成...

    ios-弹出可输入提示框.zip

    在iPad应用中,苹果推荐使用UIPopoverPresentationController来实现这一功能,而在iPhone上,由于屏幕空间有限,可能会选择使用类似UIAlertController或者自定义的全屏视图来模拟弹出效果。 在这个项目中,开发者...

    phonegap学习资料

    - **iScroll**:为元素提供滚动功能,适用于 Android 1.5 及以上版本、iPad 3.2 及以上版本、iPhone 2.0 及以上版本。该库利用触摸事件实现滚动功能,并且同样适用于桌面浏览器。 - **jQuery Mobile**:这是 jQuery ...

    纯代码AutoLayout布局的QQ聊天界面.zip

    通过使用Size Classes,开发者可以定义不同屏幕尺寸下的界面布局,确保在iPhone和iPad上都能良好显示。 在项目"QQ-master"中,开发者可能已经实现了一套自适应的约束系统,使得聊天界面能够在各种设备和屏幕方向上...

    iOS开发中ViewController的页面跳转和弹出模态

    - `UIModalPresentationPageSheet`:在iPad上,显示为类似一页的大小,iPhone上与FullScreen相同。 - `UIModalPresentationFormSheet`:在iPad上,显示为一个小窗口,iPhone上与FullScreen相同。 - `...

    ios-TechPopList.zip

    2. **Custom Views**: 为了在iPhone上实现类似的效果,开发者可能会创建自定义视图,利用动画效果从屏幕边缘滑出,或者以全屏覆盖的形式显示。 3. **Auto Layout**: 自动布局是iOS中的一个关键概念,用于在不同尺寸...

    Camera-Preview:一个iOS应用程序,可在屏幕上显示相机而不会显示干扰的UI。 设计用于将iPhone屏幕作为文档摄像头共享

    Camera-Preview 是一款专为iOS平台设计的应用程序,它的主要功能是在屏幕上呈现相机视图,同时摒弃了常规用户界面(UI)元素,提供了一种无干扰的相机体验。这款应用特别适合那些需要将iPhone屏幕作为高质量文档...

Global site tag (gtag.js) - Google Analytics