XCode的圖片操作 (1)

取得圖片的方式,主要是透過UIImagePickerController進行控制,然後使用UIImageView顯示。我們先在interface中加入必要的Delegate並建立這兩個property:
#import <UIKit/UIKit.h>

@interface MainView : UIViewController <UINavigationControllerDelegate,UIImagePickerControllerDelegate>

@property (nonatomic, strong) UIImagePickerController *imagePicker;
@property (nonatomic, strong) IBOutlet UIImageView *imageField;

@end


然後我們同步剛才建立的兩個property:
@synthesize imagePicker,imageField;


接下來建立兩個method,一個是由library中取得圖片,而另一個就是由camera取得圖片:
- (IBAction)imageFromAlbum:(id)sender
{
    imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    [self presentViewController:imagePicker animated:YES completion:nil];
}

- (IBAction)imageFromCamera:(id)sender
{
    imagePicker = [[UIImagePickerController alloc] init];
    imagePicker.delegate = self;
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
    imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    [self presentViewController:imagePicker animated:YES completion:nil];
}


當我們透過以上方式取得圖片後,系統會自動使用didFinishPickingImage來取得圖片,並進行設定或儲存:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
    [imagePicker dismissModalViewControllerAnimated:YES];
    [imageField setImage:image];
}


我們需要的property及method都建立好了,現在我們只要在storyboard中加入兩個Round Rect Button,一個連到imageFromAlbum另一個連到imageFromCamera,然後再加一個ImageView並連結到imageField即可。

沒有留言: