UIActionSheet中的UIActionSheetDelegate与UIImagePickerController的协作,实现图片来源的选择,代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| -(void) actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ UIImagePickerController *picker=[[UIImagePickerController alloc]init]; picker.delegate=self; picker.allowsEditing=YES; switch (buttonIndex){ case 0: { if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) { picker.sourceType=UIImagePickerControllerSourceTypeCamera; } else { return; } } break; case 1: { if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary]) { picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary; } } break; case 2: { if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeSavedPhotosAlbum]) { picker.sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum; } } break; default:{ return; } break; } if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone){ [self presentViewController:picker animated:YES completion:nil]; }else{ UIPopoverController * popOver = [[UIPopoverController alloc] initWithContentViewController: picker]; popOver.delegate = self; _popOverController = popOver; [_popOverController presentPopoverFromRect:CGRectMake(0,100, 0, 0) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; } }
|
这里加了一个UIPopoverController,但是UIPopoverController只能在ipad设备上面使用。