工程建立~: single View Application
AppDelegate.h
AppDelegate.m 二者中都不用写啥玩意儿
ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
@end
ViewController.m
#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];
// Do any additional setup after loading the view, typically from a nib.
self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 150, 150)];
[self.view addSubview:self.imageView];
[self.imageView release];
self.imageView.backgroundColor = [UIColor cyanColor];
UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"选择图片" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"从相册里选择", nil];
[sheet showInView:self.view];
[sheet release];
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(imageToPhonoAlbum:error:contextinfo:), nil);
}
}
- (void)imageToPhonoAlbum:(UIImage *)image error:(NSError *)error contextinfo:(NSString *)info {
if (!error) {
NSLog(@"保存成功");
}
}
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"%ld", buttonIndex);
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
// 可编辑
picker.allowsEditing = YES;
// 模态显示出来
[self presentViewController:picker animated:YES completion:^{
}];
// 要通过choose获取本地的图片就必须签订协议
picker.delegate = self;
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
// 先让相册消失
[picker dismissViewControllerAnimated:YES completion:nil];
//
UIImage *image = info[UIImagePickerControllerEditedImage];
self.imageView.image = image;
}