延續前一篇,對於iPad來說,photolibrary的讀取,需要使用popover的方式,如果沿用iphone的方式,則會當掉。以下是實作方法。
1. 開啓一個新的專案
2. 在storyboard上置入一個imageView及三個Button
3.在mainViewController.h註冊imageView並加入所需變數
#import <UIKit/UIKit.h>
@interface mainViewController : UIViewController
{
UIImagePickerController *ipc;
UIPopoverController *popover;
}
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
4. 在mainViewController.m加入所需程式碼
#import "mainViewController.h"
@interface mainViewController ()
@end
@implementation mainViewController
@synthesize imageView;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)takeCamera:(id)sender {
ipc = [[UIImagePickerController alloc] init];
[ipc setDelegate:self];
[ipc setSourceType:UIImagePickerControllerSourceTypeCamera];
[self presentViewController:ipc animated:YES completion:^{}];
}
- (IBAction)openPhotoLibrary:(id)sender {
UIView *anchor = sender;
UIImagePickerController *m_imagePicker = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypePhotoLibrary]) {
m_imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
m_imagePicker.delegate = self;
[m_imagePicker setAllowsEditing:YES]; // 圖片出現可編輯的選項
popover = [[UIPopoverController alloc] initWithContentViewController:m_imagePicker];
[popover setPopoverContentSize:CGSizeMake(300, 300)];
[popover presentPopoverFromRect:anchor.frame inView:anchor.superview permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
}
- (IBAction)openPhotoAlbum:(id)sender {
UIView *anchor = sender;
UIImagePickerController *m_imagePicker = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypeSavedPhotosAlbum]) {
m_imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
m_imagePicker.delegate = self;
[m_imagePicker setAllowsEditing:NO];
popover = [[UIPopoverController alloc] initWithContentViewController:m_imagePicker];
[popover setPopoverContentSize:CGSizeMake(300, 300)];
[popover presentPopoverFromRect:anchor.frame inView:anchor.superview permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
}
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
[imageView setImage:image];
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
5. 執行結果,可在模擬器上執行,但建議上真機測試較佳。
另外如果增加[m_imagePicker setAllowsEditing:YES]; // 圖片出現可編輯的選項



沒有留言:
張貼留言