#import "ViewController.h"
@interface ViewController ()<UIActionSheetDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate>
@property(nonatomic, retain)UIImageView *imageView;
@end
@implementation ViewController
- (void)dealloc {
[_imageView release];
[super dealloc];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 150, 150)];
[self.view addSubview:self.imageView];
self.imageView.backgroundColor = [UIColor yellowColor];
[_imageView release];
UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"选择图片" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"从相册选择", nil];
[self.view addSubview:sheet];
sheet.backgroundColor = [UIColor blueColor];
[sheet release];
[sheet showInView:self.view];
self.imageView.userInteractionEnabled = YES;
UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)];
[self.imageView addGestureRecognizer:longPress];
[longPress release];
}
- (void)longPressAction:(UILongPressGestureRecognizer *)longPress {
if (longPress.state == UIGestureRecognizerStateBegan) {
UIImageWriteToSavedPhotosAlbum(self.imageView.image, self, @selector(imageToPhotosAlbum:Error:contextinfo:), nil);
}
}
- (void)imageToPhotosAlbum:(UIImage *)image Error:(NSString *)error contextinfo:(NSString *)info {
if (!error) {
NSLog(@"保存成功!");
}
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.allowsEditing = YES;
picker.delegate = self;
[self presentViewController:picker animated:YES completion:^{
}];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
[picker dismissViewControllerAnimated:YES completion:nil];
UIImage *image = info[UIImagePickerControllerEditedImage];
self.imageView.image = image;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
@end