![](/img/trans.png)
[英]How can I allow user to select photo from iOS Photos app and open in my application? And I don't want to use SHARE EXTENSION
[英]How do I allow user to use their saved photo as a background in my app?
在过去几天里,我一直在零散地寻找如何执行此操作的方法,但至今仍未找到任何内容,希望能对您有所帮助。
当前在我的应用程序中,我有5个不同的背景作为项目文件的一部分,并允许用户在它们之间进行选择来设置应用程序背景,以为应用程序提供一些自定义提示。
我想做的是允许用户选择他们保存在设备上的照片,并将其用作我的应用程序的背景,但是在不知道的情况下无法找到操作方法或错过了它(我来自原始的C#背景,因此仍要适应术语和学习语言和IDE带来的所有乐趣。
我想在代码中做的是:
感谢大家为您提供的任何帮助以及花费的时间。 作为iPhone 5.0的FYI Im建筑
在笔尖文件和按钮中制作一个UIImageView并钩住笔尖
在ViewController.h中
@interface ViewController : UIViewController
<UIImagePickerControllerDelegate,UINavigationControllerDelegate>
{
IBOutlet UIButton *ChooseFileBtn;
}
@property (nonatomic,retain) UIImage *userimage;
-(IBAction)getphoto:(id)sender;
在ViewController.m中
-(IBAction)getphoto:(id)sender {
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
[self presentViewController:picker animated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissViewControllerAnimated:YES completion:nil];
userimage = [info objectForKey:UIImagePickerControllerOriginalImage];
imageView.image=userimage;
}
您可以使用UIImagePickerController从照片库获取图像
-(void)ClickOnsetBG:(id)sender{
UIImagePickerController *imgpicker = [[UIImagePickerController alloc] init];
imgpicker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
imgpicker.delegate=self;
[self.navigationController presentModalViewController:imgpicker animated:YES];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[UIView commitAnimations];
}
然后实现委托方法以获取所选图像:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *aImgRecord = [info objectForKey:UIImagePickerControllerOriginalImage];
[imgpicker dismissModalViewControllerAnimated:YES];
bgImage.image =aImgRecord;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"custombg.png"];
NSData *imageData = UIImagePNGRepresentation(aImgRecord);
[imageData writeToFile:savedImagePath atomically:NO];
}
该图像将保存在您应用程序的文档目录中。 因此,当您重新打开应用程序时,必须从“此文档目录路径”中设置bgimage。
您也可以使用NSUserDefaults执行此操作
-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info
{
UIImage *newImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
NSData *imageData = UIImageJPEGRepresentation(newImage, 1);
[[NSUserDefaults standardUserDefaults] setObject:imageData forKey:@"BackgroundImage"];
[picker dismissViewControllerAnimated:YES completion:^ {
// If you have used UIImageView
[self.yourImageViewObject setImage:newImage];
}];
}
稍后可以通过NSUserDefaults轻松显示图像,例如
UIImage *image = [UIImage imageWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"BackgroundImage"]];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.