1.建立Empty Application,添加一個視圖,設計xib如下:
2.使用 UIImagePickerController ,必須指定幾個非常重要的屬性:指定源的類型(指定之前要判斷是否可用)、指定委託、指定圖片是否可以編輯,設定完之後,就可以啟動了,將其“推”出來即可。
- (IBAction)takeNewPhoto:(id)sender
{
//建立圖片選取器
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
//指定源類型前,檢查圖片源是否可用
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
//指定源的類型
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
//在選定圖片之前,使用者可以簡單編輯要選的圖片。包括上下移動改變圖片的選取範圍,用手捏合動作改變圖片的大小等。
imagePicker.allowsEditing = YES;
//實現委託,委託必須實現UIImagePickerControllerDelegate協議,來對使用者在圖片選取器中的動作
imagePicker.delegate = self;
//設定完iamgePicker後,就可以啟動了。用以下方法將映像選取器的視圖“推”出來
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
}
else
{
UIAlertView *alert =[[UIAlertView alloc] initWithTitle:nil message:@"相機不能用" delegate:nil cancelButtonTitle:@"關閉" otherButtonTitles:nil];
[alert show];
[alert release];
}
}
3. UIImagePickerControllerDelegate協議的方法來實現對使用者的操作
#pragma mark -
#pragma mark UIImagePickerControllerDelegate協議的方法
//使用者點擊映像選取器中的“cancel”按鈕時被調用,這說明使用者想要中止選取映像的操作
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[picker dismissModalViewControllerAnimated:YES];
}
//使用者點擊選取器中的“choose”按鈕時被調用,告知委派物件,選取操作已經完成,同時將返回選取圖片的執行個體
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
noticeLabel.hidden = YES;
[imageView setImage:image];
[picker dismissModalViewControllerAnimated:YES];
}