我们可以使用
将图像添加到相册中UIImage *img = [UIImage imageNamed:@"ImageName.png"];
UIImageWriteToSavedPhotosAlbum(img, self,
@selector(image:didFinishSavingWithError:contextInfo:), nil);
以后可以删除添加的图像吗?如果是这样,我如何为用户提供删除添加图像的选项。
答案 0 :(得分:4)
您的问题不是很清楚,但如果您使用文档目录保存此图片,请使用以下方法:
保存强>
-(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
if ([[extension lowercaseString] isEqualToString:@"png"]) {
[UIImagePNGRepresentation(image) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] options:NSAtomicWrite error:nil];
} else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) {
[UIImageJPEGRepresentation(image, 1.0) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"jpg"]] options:NSAtomicWrite error:nil];
} else {
ALog(@"Image Save Failed\nExtension: (%@) is not recognized, use (PNG/JPG)", extension);
}
}
<强>加载强>
-(UIImage *) loadImage:(NSString *)fileName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
UIImage * result = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", directoryPath, fileName, extension]];
return result;
}
删除强>
-(void) removeFile:(NSString *)fileName ofType:(NSString *)extension inDirectory:(NSString *)directory {
NSFileManager * fileManager = [NSFileManager defaultManager];
NSError * error = nil;
if ([[NSFileManager defaultManager] fileExistsAtPath:[directory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", fileName, extension]]]) {
BOOL itemRemoved = [fileManager removeItemAtPath:[NSString stringWithFormat:@"%@/%@.%@", directory, fileName, extension] error:&error];
if (itemRemoved == TRUE) {
ALog(@"Item \"%@\" Removed", fileName);
} else {
ALog(@"Item \"%@\" Removal Failed", fileName);
}
} else {
ALog(@"Item \"%@\" does not exist", fileName);
}
}
如何对强>
保存的
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
[self saveImage:yourImage withFileName:@"YourImageName" ofType:@"png" inDirectory:path];
加载
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
UIImage * myImage = [self loadImage:@"YourImageName" ofType@"png" inDirectory:path];
删除的
NSString * path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
[self removeFile:@"YourImageName" ofType:@"png" inDirectory:path];
注意:强> 的 在这种情况下,'png'扩展名用作默认值,但您可以将其更改为您正在使用的图片扩展名。
<强>建议强>
使用上述方法将文件保存到文档目录文件夹,在应用程序中读取图像。如果用户不喜欢照片,他/她可以从您的应用程序(文档目录)中删除它。如果用户喜欢这张照片,他/她可以将其添加到相册中,或者当应用程序退出时,您可以添加代码将照片添加到您的相册中。
许多照片应用程序都使用文档目录方法。如果您使用文档目录方法,上述方法将对您有所帮助。
答案 1 :(得分:0)
NSString *fileName = [NSString stringWithFormat:@"myfile.example"];
NSString *filePath = [self documentsPathForFileName:fileName];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager removeItemAtPath:myFilePath error:NULL];
如果文件已打开,则必须先关闭该文件。
抱歉,重读我认为我误解了你的问题。
答案 2 :(得分:0)
创建一个名为Delete的按钮。当他点击它时,你必须在tableview中加载图像,这样你就可以在tableview中给出删除选项(基于此只需你需要加载图像来处理UserId) )
NSFileManager *defaultFileManager = [NSFileManager defaultManager];
NSString *filePath = @"pass the Path here";
[defaultFileManager removeItemAtPath:filePath error:nil];
答案 3 :(得分:0)
不,您无法删除保存在相册中的图像。用户应手动执行此操作。请注意,保存到相册时未指定文件名。 UIImageWriteToSavedPhotosAlbum(img, self,
@selector(image:didFinishSavingWithError:contextInfo:), nil);
。 iOS动态地为要保存的图像指定文件名。