.h
#import <UIKit/UIKit.h>
@interface RootViewController : UIViewController
<UIActionSheetDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate>
{
UIImageView *imageView;
}
.m
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title=@"图片手势,上传照片";
//初始化背景图
[self initBackgroundView];
}
#pragma -mark -functions
-(void)initBackgroundView
{
imageView =[[UIImageView alloc]initWithFrame:CGRectMake(100, 150, 200, 150)];
imageView.backgroundColor = [UIColor redColor];
[self.view addSubview:imageView];
[imageView setUserInteractionEnabled:YES];
UITapGestureRecognizer * clickGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickGesture:)];
[imageView addGestureRecognizer:clickGesture];
}
#pragma -mark -doClickActions
-(void)clickGesture:(UIGestureRecognizer*)gesture
{
UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:@"选择图片来源" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"拍照" otherButtonTitles:@"本地相册", nil];
[actionSheet showInView:self.view];
}
#pragma -mark UIActionSheetDelegate
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"--buttonIndex-%i",buttonIndex);
UIImagePickerController *pickView = [[UIImagePickerController alloc]init];
pickView.delegate=self;
if(buttonIndex==0&&!TARGET_IPHONE_SIMULATOR){
//相机
pickView.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:pickView animated:NO completion:nil];
}else if (buttonIndex==1){
//相册
pickView.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:pickView animated:NO completion:nil];
}
}
#pragma -mark -UIImagePickerControllerDelegate
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage * image = [info objectForKey:UIImagePickerControllerOriginalImage];
[imageView setImage:image];
[picker dismissViewControllerAnimated:NO completion:nil];
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissViewControllerAnimated:NO completion:nil];
}