您的位置:首页 > 产品设计 > UI/UE

iphone 怎么使用图片选取器 UIImagePickerController

2012-07-03 11:10 417 查看
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController <UINavigationControllerDelegate,UIImagePickerControllerDelegate>{
UIImageView *backImageView;
}

@property(retain, nonatomic) IBOutlet UIButton *showImgPickerButton;
@property(retain, nonatomic) IBOutlet UIImageView *backImageView;

- (IBAction)showImagePicker:(id)sender;

@end


//
//  ViewController.m
//  test6
//
//  Created by Totem on 12-7-2.
//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import "ViewController.h"

@implementation ViewController

@synthesize showImgPickerButton;
@synthesize backImageView;

- (IBAction)showImagePicker:(id)sender
{
#if TARGET_IPHONE_SIMULATOR
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
#else
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
#endif
if ([UIImagePickerController isSourceTypeAvailable:sourceType]) {
NSLog(@"调用UIImagePickerController");
UIImagePickerController *picker = [[[UIImagePickerController alloc] init] autorelease];
picker.delegate = self;
picker.allowsEditing = YES;

[self presentModalViewController:picker animated:YES];
//        [self.navigationController pushViewController:picker animated:YES];
}else {
NSLog(@"为调用UIImagePickerController");
}
}

//两种完成选取后调用方式之一
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:editingInfo];
[dic setObject:image forKey:@"UIImagePickerControllerEditedImage"];
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
[self dismissModalViewControllerAnimated:YES];
[backImageView setImage:image];
}

//两种完成选取后调用方式之一
//- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
//    if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
//        NSLog(@"来自Camera相机的图片");
//        //如果是 来自照相机的image,那么先保存
//        UIImage* original_image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
//        UIImageWriteToSavedPhotosAlbum(original_image, self,
//                                       @selector(image:didFinishSavingWithError:contextInfo:),
//                                       nil);
//    }else if(picker.sourceType == UIImagePickerControllerSourceTypePhotoLibrary){
//        NSLog(@"来自PhotoLibrary");
//    }else if(picker.sourceType == UIImagePickerControllerSourceTypeSavedPhotosAlbum){
//        NSLog(@"来自");
//    }
//    //获得编辑过的图片
//    UIImage* image = [info objectForKey: @"UIImagePickerControllerEditedImage"];
//    [self dismissModalViewControllerAnimated:YES];
//    [backImageView setImage:image];
//}

- (void)image:(UIImageView*)image didFinishSavingWithError:(NSString*)error contextInfo:(NSString*)
context{
NSLog(@"保存完成!");
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
[self dismissModalViewControllerAnimated:YES];
}

- (void)dealloc
{
[showImgPickerButton release];
[backImageView release];
[super dealloc];
}

- (void)viewDidLoad
{
[super viewDidLoad];
NSError *error = [[[NSError alloc] init] autorelease];

CFShow([[NSFileManager defaultManager] contentsOfDirectoryAtPath:[NSHomeDirectory() stringByAppendingString:@"/documents"] error:&error]);
// Do any additional setup after loading the view, typically from a nib.
}

- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

@end


xib文件中只有一个UIImageView作为背景,还有一个按钮UIButton用来显示UIImagePickerController



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐