#import "ViewController.h"
@interface ViewController ()<UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@property (nonatomic, strong)UIImage *avatar;
@property (nonatomic, strong)UIImageView *avatar1;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
UIButton *button = [[UIButton alloc]init];
button.frame = CGRectMake(100, 250, 100, 100);
[button setTitle:@"上传图片" forState:UIControlStateNormal];
button.backgroundColor = [UIColor redColor];
[button addTarget:self action:@selector(btnActionForEditPortrait:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
_avatar1 = [[UIImageView alloc]init];
_avatar1.frame = CGRectMake(100, 80, 80, 80);
_avatar1.backgroundColor = [UIColor blackColor];
_avatar1.layer.masksToBounds = YES;
_avatar1.layer.cornerRadius = CGRectGetHeight(_avatar1.bounds) / 2;
_avatar1.layer.borderWidth = 2.0f;
_avatar1.layer.borderColor = [[UIColor lightGrayColor]CGColor];
[self.view addSubview:_avatar1];
}
#pragma mark 图片将要加载的时候处理占位图
- (void)viewWillAppear:(BOOL)animated
{
NSData *data = [[NSUserDefaults standardUserDefaults]objectForKey:@"avatar"];
if (data == nil) {
NSLog(@"viewWillAppear 11111---%@", data);
_avatar1.image = [UIImage imageNamed:@"Wechat"];
} else
{
_avatar1.image = [UIImage imageWithData:data];
}
[self.view addSubview:_avatar1];
}
#pragma mark 打开本地照片
- (void)btnActionForEditPortrait:(id)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.delegate = self;
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.allowsEditing = YES;
[self presentViewController:picker animated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
_avatar = info[UIImagePickerControllerEditedImage];
[self saveImage:_avatar withNamge:@"userAvatar"];
[picker dismissViewControllerAnimated:YES completion:nil];
}
- (void)saveImage:(UIImage *)tempImage withNamge:(NSString *)imageName
{
NSData *imageData = UIImagePNGRepresentation(tempImage);
NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *totalPath = [documentPath stringByAppendingString:imageName];
[imageData writeToFile:totalPath atomically:YES];
NSLog(@"document --- %@", totalPath);
[_avatar1 setImage:[self getImage:totalPath]];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:imageData forKey:@"avatar"];
#pragma mark 上传服务器
}
- (UIImage *)getImage:(NSString *)urlStr
{
return [UIImage imageWithContentsOfFile:urlStr];
}