ios - 如何在 iPhone 中以编程方式保存带有时间戳的屏幕截图?

标签 ios datetime screenshot

您好,我正在开发一个 iPad 应用程序,该应用程序需要自动截图,并且图像应以屏幕名称的名称保存,并附上设备中的当前日期和当前时间。有人帮我做这件事。

我尝试了以下代码。在该代码中截取了屏幕截图,我将在该 View 中的标签中打印名称。但标签中的时间不准确,所以我想以添加时间的屏幕名称的名称保存图像。

        //-- Screen Capture --------------------------------------------------------------------//

UIImage *image = nil;

UIGraphicsBeginImageContext(loginBgImgVw.frame.size);

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM-dd-yyyy HH:MM:SS"];
[formatter setTimeZone:[NSTimeZone localTimeZone]];

NSString *dateToday = [formatter stringFromDate:[NSDate date]];

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(100, 0, 600, 44)];
[label setText:dateToday];
NSString *fileNameStr = [NSString stringWithFormat:@"%@_Login_%@",providerIdStr,dateToday];

[label setText:fileNameStr];
label.backgroundColor = [UIColor clearColor];
[loginBgImgVw addSubview:label];
[formatter release];


[loginBgImgVw.layer renderInContext: UIGraphicsGetCurrentContext()];     
image = UIGraphicsGetImageFromCurrentImageContext();        
UIGraphicsEndImageContext();        

//=--

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docspath = [paths objectAtIndex:0];
NSLog(@"path=--%@",paths);

NSString *dataPath = [docspath stringByAppendingPathComponent:[NSString stringWithFormat:@"ProviderID_%@",providerIdStr]];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
{
    [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil];
}

NSString *savedImagePath = [dataPath stringByAppendingPathComponent:@"Login_Provider.png"];
NSData *imageData = UIImageJPEGRepresentation(image, 0.2);
[imageData writeToFile:savedImagePath atomically:NO];

UIImageWriteToSavedPhotosAlbum(image,self,@selector(image:didFinishSavingWithError:contextInfo:),NULL);

//--------------------------------------------------------------------------------------//

最佳答案

您需要将日期格式化程序更改为,

[formatter setDateFormat:@"MM-dd-yyyy HH:mm:ss"];

MM 代表月份,mm 代表分钟。

关于ios - 如何在 iPhone 中以编程方式保存带有时间戳的屏幕截图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12933757/

相关文章:

ios - 在 iOS 12 中将 UIColours 数组存档和取消存档到 NSUserDefaults?

python - 构建上周、本周和下周的日期数组

python - 查找 datetime64 的星期几

c# - XNA 截图显示了 pre-Bloom,而不是最终渲染

iphone - 保留使用 UIGraphicsGetImageFromCurrentImageContext 创建的 UIImage 的所有权

ios - UIApplicationSignificantTimeChange 通知未触发

ios - "mutating sent to immutable object"在数组内的字典中

ios - Swift 中的字符串到类名

datetime - Elasticsearch如何在日期时间字段中按时间搜索

ffmpeg - FFmpeg 是否在服务器上下载视频以从 S3 视频 url 生成屏幕截图?