详谈iPhoneX截图如何带
时间:2021-04-08 10:38:03|栏目:iOS代码|点击: 次
直接用iPhoneX截图后是没有圆角和刘海的,就像下面这样。
其实加圆角和刘海也很简单
第一步:截屏
第二步:打开我这个软件,并选取图片库中的那张图
第三步:添加圆角,刘海
第四步:将做好的图片保存到相册
还需要下边这张刘海的图片
可以上代码了(目前原图是固定的,没有从图片库选取)
// // ViewController.m // iPhoneXPhotoEdit // // Created by yfc on 2017/12/23. // Copyright © 2017年 yfc. All rights reserved. // #import "ViewController.h" #import <AssetsLibrary/AssetsLibrary.h> #import <Photos/Photos.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIButton *btn = [[UIButton alloc]init]; btn.frame = CGRectMake(10, 44, 350, 758); btn.frame = CGRectMake(0, 0, 375, 812); [btn setBackgroundImage:[UIImage imageNamed:@"IMG_3655.PNG"] forState:UIControlStateNormal]; //添加圆角 btn.layer.cornerRadius = 35 ; btn.layer.borderColor = [UIColor blackColor].CGColor; btn.layer.borderWidth = 2; [self.view addSubview:btn]; btn.backgroundColor = [UIColor whiteColor]; btn.clipsToBounds = YES; //添加刘海 UIImageView *imageView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"liuhai.png"]]; imageView.frame = CGRectMake(70, 0, 222, 28); [btn addSubview:imageView]; self.view.backgroundColor = [UIColor clearColor]; //截图保存到相册 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [self saveBtnAction:nil]; }); } -(void)saveBtnAction:(UIButton *)sender{ [self requestAuthorizationStatus]; } //查看权限 - (void)requestAuthorizationStatus { [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){ dispatch_async(dispatch_get_main_queue(), ^{ switch (status) { case PHAuthorizationStatusAuthorized: { [self cutScreen]; break; } default://Denied { break; } } }); }]; } //截屏 -(void)cutScreen{ UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 0.0); //2.获取当前图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //3.获取需要截取的view的layer [self.view.layer renderInContext:ctx]; //4.从当前上下文获取图片 UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); //5.关闭图形上下文 UIGraphicsEndImageContext(); //6.把图片保存到相册 UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); } //保存成功后回调 -(void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{ NSString *msg = nil; if (error) { msg = @"图片保存失败"; }else{ msg = @"图片保存成功"; } UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:msg delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil]; [alertView show]; } @end
效果图是