文档章节

iOS 学习笔记一【屏幕截图,并显示当前View】

博爱1616
 博爱1616
发布于 2016/11/03 18:06
字数 367
阅读 30
收藏 0

// 直接上代码:

 

//

//  ViewController.h

//  屏幕截图测试

//

//  Created by 博爱之家 on 15/11/11.

//  Copyright © 2015年 博爱之家. All rights reserved.

//

 

#import <UIKit/UIKit.h>

 

@interface ViewController : UIViewController

{

    NSData *imageData;

}

 

@end

 

 

*************************************

//

//  ViewController.m

//  屏幕截图测试

//

//  Created by 博爱之家 on 15/11/11.

//  Copyright © 2015年 博爱之家. All rights reserved.

//

 

#import "ViewController.h"

 

//宏定义

//当前设备的屏幕宽度

#define KSCREEN_WIDTH   [[UIScreen mainScreen] bounds].size.width

 

//当前设备的屏幕高度

#define KSCREEN_HEIGHT   [[UIScreen mainScreen] bounds].size.height

 

@interface ViewController ()

 

@property (nonatomic, strong) UILabel *testlabel;

@property (nonatomic, strong) UIButton *testButton;

 

@end

 

@implementation ViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    self.title = @"截屏测试";

    self.view.backgroundColor = [UIColor whiteColor];

    

    self.testlabel = [UILabel new];

    self.testlabel.frame = CGRectMake((KSCREEN_WIDTH-200)/2 , 100, 200, 50);

    self.testlabel.text = @"截屏测试";

 

    

    self.testButton = [UIButton buttonWithType:UIButtonTypeCustom];

    self.testButton.frame = CGRectMake((KSCREEN_WIDTH-200)/2 , 200, 200, 50);

    [self.testButton setTitle:@"点击截屏" forState:UIControlStateNormal];

    self.testButton.backgroundColor = [UIColor purpleColor];

    [self.testButton addTarget:self action:@selector(clickBUutton:) forControlEvents:UIControlEventTouchUpInside];

    

    [self.view addSubview:self.testlabel];

    [self.view addSubview:self.testButton];

}

 

- (IBAction)clickBUutton:(id)sender

{

    NSLog(@"开始");

    [self saveScreenShotsView];

    

    UIImageView *imageView = [[UIImageView alloc] init];

    imageView.frame = CGRectMake(100, 400, 200, 200);

    imageView.backgroundColor = [UIColor greenColor];

    imageView.image = [UIImage imageWithData:imageData];

    

    [self.view addSubview:imageView];

}

 

// 保存图片

- (void)saveScreenShotsView

{

    UIImage *image = [self getNormalImage:self.view];

    UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);

    

    [self saveToDisk:image];

    NSLog(@"结束");

}

 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);

}

 

#pragma mark - 获取屏幕截图

- (UIImage *)getNormalImage:(UIView *)view

{

    UIGraphicsBeginImageContext(CGSizeMake(KSCREEN_WIDTH, KSCREEN_HEIGHT));

    CGContextRef context = UIGraphicsGetCurrentContext();

    [view.layer renderInContext:context];

    

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return image;

}

 

#pragma mark - 保存到硬盘中

- (void)saveToDisk:(UIImage *)image

{

    NSString *dirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES) objectAtIndex:0];

    

    NSLog(@"保存路径: %@", dirPath);

    

    NSString *path = [NSString stringWithFormat:@"%@/pic_%f.png",dirPath,[NSDate timeIntervalSinceReferenceDate]];

    

    imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];

    

    [imageData writeToFile:path atomically:YES];

    

    NSLog(@"保存路径: %@", path);

    

    NSString *imagePath = [[path componentsSeparatedByString:@"/"] lastObject];

    

    NSLog(@"保存路径2imagePath: %@", imagePath);

    NSLog(@"保存完毕");

}

@end

 

本文转载自:http://www.cnblogs.com/boai/p/4959960.html

博爱1616

博爱1616

粉丝 3
博文 7
码字总数 0
作品 3
广州
高级程序员
私信 提问
【React Native开发】React Native控件之WebView组件详解以及实例使用(22)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jiangqq781931404/article/details/50676379 import React, {AppRegistry,Component,StyleSheet,Text,View,We......

江清清
2016/02/16
0
0
UIView Animations 学习笔记(二)定制动画效果及切换效果

目录 UIView Animations 学习笔记(一)简介及API说明 UIView Animations 学习笔记(二)定制动画效果及切换效果 UIView Animation 学习笔记 应用示例 二、视图切换定制 2.1 基础说明 要创建...

灰大羊
2015/08/12
197
0
使用 Dojo Mobile 为 iOS 智能终端开发 Native-like Web 应用

简介 iOS 是 Apple 公司为 iPhone、iPod Touch、iPad 以及 iTV 等系列数码产品推出的一套基于 Mac OS X 并高度定制化的操作系统。随着这些数码产品的日益普及,越来越多的开发者加入到为其编...

IBMdW
2011/09/14
1K
1
使用 Interface Builder 兼容 iOS6 和iOS7

当你在更新你的App到iOS 7的平台时遇到最大的挑战之一就是确保不要遗忘那些还在使用iOS 6平台的用户,在此我们提供一些建议使你的App应用在iOS 6和iOS 7上同时保留视觉吸引力和技术功能. 此图...

isaced
2014/01/15
13.4K
12
IOS代码实现Hello World

前面写的IOS笔记一直都是用Xib文件实现的小Demo开发,但是问了好几个现在正从事IOS开发的朋友,在实际开发,并不是所有的项目都会用Xib来实现的,因为IOS以前的版本不能正常运行,因为还在学...

长平狐
2012/10/25
160
0

没有更多内容

加载失败,请刷新页面

加载更多

log4j起不来: No appenders could be found for logger

在mvn test时,log4j一起起不来,log message打不出来 原因: log4j.properties 文件没不存在,或存在,但放错路径 解:把log4j.properties放入mvn 默认的resources跑路径下面:./src/main/...

Rebecca_Hu
22分钟前
5
0
ETH 开发工作记录

测试是否连接成功 String web3ClientVersion = web3j.web3ClientVersion().send().getWeb3ClientVersion(); log.info("version=" + web3ClientVersion);...

xiaodong16
24分钟前
3
0
ntpserver配置

# For more information about this file, see the man pages # ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5). driftfile /var/lib/ntp/drift # Permit ti......

Archer99
30分钟前
3
0
技术分享 | delete 语句引发大量 sql 被 kill 问题分析

作者:王航威 有赞 MySQL DBA,擅长分析和解决数据库的性能问题,利用自动化工具解决日常需求。 现象 某个数据库经常在某个时间点比如凌晨 2 点或者白天某些时间段发出如下报警 [Critical][p...

爱可生
35分钟前
5
0
Spring Boot 2.X(十六):应用监控之 Spring Boot Actuator 使用及配置

Actuator 简介 Actuator 是 Spring Boot 提供的对应用系统的自省和监控功能。通过 Actuator,可以使用数据化的指标去度量应用的运行情况,比如查看服务器的磁盘、内存、CPU等信息,系统的线程...

朝雾轻寒
39分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部