iphone 截屏 转自:hager的博客

原创 2012年03月30日 12:56:11
 iPhone 用户同时按下 Home 和锁屏键就能截屏,但在应用里总不能跳出一行字让用户自己按截屏键。这段代码能实现程序内截屏功能,支持 iPhone 4 Retina 高分屏。

UIView *view = [[[[[UIApplication sharedApplication] windows] objectAtIndex:1] subviews] lastObject];//获得某个window的某个subView
 
    NSInteger index = 0;//用来给保存的png命名
    for (UIView *subView in [view subviews]) {//遍历这个view的subViews
        if ([subView isKindOfClass:NSClassFromString(@"UIImageView")] || [subView isKindOfClass:NSClassFromString(@"UIThreePartButton")]) {//找到自己需要的subView
            //支持retina高分的关键
            if(UIGraphicsBeginImageContextWithOptions != NULL)
            {
                UIGraphicsBeginImageContextWithOptions(subView.frame.size, NO, 0.0);
            } else {
                UIGraphicsBeginImageContext(subView.frame.size);
            }            
 
            //获取图像
            [subView.layer renderInContext:UIGraphicsGetCurrentContext()];
            UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
            UIGraphicsEndImageContext();
 
            //保存图像
            NSString *path = [NSHomeDirectory() stringByAppendingFormat:@"/%d.png",index];
            if ([UIImagePNGRepresentation(image) writeToFile:path atomically:YES]) {
                index += 1;
                NSLog(@"Succeeded!");
            }
            else {
                NSLog(@"Failed!");
            }
        }
    }

让 IPhone 程序的调试信息只在 debug 模式下输出 转自:hager的博客

iPhone 应用发布后,程序运行过程中尽量不要有调试 log 信息输出,因为这样会影响程序运行的效率。通过宏定义设置,使得程序只在 debug 模式下输出这些只对于我们开发者有用的信息,而 rele...

iphone多线程简介————关于NSOperation的使用(转自henry-sea的博客)

1,operationQueue 里边应该可以同时添加多个operation吧? 是的,本来operationQueue的目的就是多线程管理,那多线程,可不只是一个线程。 而且我们可以...

iPhone几种截屏的代码分享

1. UIGraphicsBeginImageContextWithOptions(pageView.page.bounds.size, YES, zoomScale); [pageV...

截屏方法 iphone

from:http://www.cocoachina.com/bbs/read.php?tid=50089 1. UIGraphicsBeginImageContextWithOptions(...
  • ToddFox
  • ToddFox
  • 2011年12月06日 10:36
  • 1023

iPhone几种截屏的代码分享

1.         UIGraphicsBeginImageContextWithOptions(pageView.page.bounds.size, YES, zoomScale);     ...

c++符号优先级以及理解方法(很不错)-----转自leukotrichia的博客

C++操作符的优先级 操作符及其结合性 功能 用法 L  L  L ::  ::  :: 全局作用域   类作...

[转自Oracle官方中文博客]关于sys CPU usage 100%问题的分析

[转自Oracle官方中文博客]关于sys CPU usage 100%问题的分析

再见,viewDidUnload方法(转自@唐巧_boy 的博客。)

转自@唐巧_boy 的博客。 我在去年的一篇文章《iOS5中UIViewController的新方法》中介绍了iOS5引入的关于ViewController的新方法。但是现在如果运行该文章中的S...

android 开发六层全解释--转自合并老罗博客

Android硬件抽象层(HAL)概要介绍和学习计划   Android的硬件抽象层,简单来说,就是对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节。也就是说,把对硬件的支持分成了...

给Pcduino3B烧写Ubuntu(转自自己的新浪博客)

给Pcduino 3B烧写系统(卡刷)   (2016-12-07 20:04:23) 转载▼     首先在此感谢在这个过程中帮助我的小伙...
  • LEOLUZE
  • LEOLUZE
  • 2016年12月09日 12:04
  • 304
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iphone 截屏 转自:hager的博客
举报原因:
原因补充:

(最多只允许输入30个字)