IOS成长之路-调用照相机和相册功能
打开相机:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 |
//先设定sourceType为相机,然后判断相机是否可用(ipod)没相机,不可用将sourceType设定为相片库 UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera; // if (![UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) { // sourceType = UIImagePickerControllerSourceTypePhotoLibrary; // } //sourceType = UIImagePickerControllerSourceTypeCamera; //照相机 //sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //图片库 //sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; //保存的相片 UIImagePickerController *picker = [[UIImagePickerController alloc] init]; //初始化 picker.delegate = self ; picker.allowsEditing = YES ; //设置可编辑 picker.sourceType = sourceType; [ self
presentModalViewController:picker animated: YES ]; //进入照相界面 [picker release]; |
打开相册:(区分pad和iphone)
for iphone:
1
2
3
4
5
6
7
8
9
10
11 |
UIImagePickerController *pickerImage = [[UIImagePickerController alloc] init]; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) { pickerImage.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //pickerImage.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; pickerImage.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:pickerImage.sourceType]; } pickerImage.delegate = self ; pickerImage.allowsEditing = NO ; [ self
presentModalViewController:pickerImage animated: YES ]; [pickerImage release]; |
for ipad:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 |
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypePhotoLibrary; //sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; //保存的相片 UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self ; picker.allowsEditing = NO ; //是否允许编辑 picker.sourceType = sourceType; /* 如果从一个导航按钮处呈现,使用: presentPopoverFromBarButtonItem:permittedArrowDirections:animated:; 如果要从一个视图出呈现,使用: presentPopoverFromRect:inView:permittedArrowDirections:animated: 如果设备旋转以后,位置定位错误需要在父视图控制器的下面方法里面重新定位: didRotateFromInterfaceOrientation:(在这个方法体里面重新设置rect) 然后再次调用: - (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated */ //UIPopoverController只能在ipad设备上面使用;作用是用于显示临时内容,特点是总是显示在当前视图最前端,当单击界面的其他地方时自动消失。 UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:picker]; self .imagePicker = popover; //permittedArrowDirections 设置箭头方向 [ self .imagePicker presentPopoverFromRect:CGRectMake(0, 0, 300, 300) inView: self .view permittedArrowDirections:UIPopoverArrowDirectionAny animated: YES ]; [picker release]; [popover release]; |
点击相册中的图片 货照相机照完后点击use 后触发的方法
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
点击cancel 调用的方法
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 |
//点击相册的图片和相机照完后点击use 后触发的方法 - ( void )imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:( NSDictionary
*)info{ UIImage * image=[info objectForKey:UIImagePickerControllerOriginalImage]; simageView.image=image; [ self
dismissViewControllerAnimated: YES
completion: nil ]; } //点击cancel调用的方法 - ( void )imagePickerControllerDidCancel:(UIImagePickerController *)picker{ [picker dismissViewControllerAnimated: YES
completion: nil ]; } - ( void )touchesBegan:( NSSet
*)touches withEvent:(UIEvent *)event{ [UIView animateWithDuration:1.0 animations:^{ selectHeadImageView.frame=CGRectMake(0, 480, 320, 250); }completion:^( BOOL
finished) { }]; } |
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。