当用户单击某个按钮时,我希望他能够在拍照和从图库中选择图片之间进行选择。截至目前,它似乎是其中之一。我应该为此创建两个按钮还是有更好的方法来完成这个?我希望有一种点击按钮的方式,iOS 将在 native 为用户提供选择。
-(IBAction)takePhoto:(id)sender
{
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.delegate = self;
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
}
// image picker needs a delegate,
[imagePickerController setDelegate:self];
// Place image picker on the screen
[self presentModalViewController:imagePickerController animated:YES];
}
最佳答案
在我看来,最好的方法是创建例如 2 个按钮
UIBarButtonItem * choosePhotoBtn
UIBarButtonItem * TakePhotoBtn
然后在按下任一按钮时调用相同的 IBAction,并在其中添加条件以调用适当的接口(interface),如下所示:
-(IBAction) getPhoto:(id) sender {
UIImagePickerController * picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
if((UIBarButtonItem *) sender == choosePhotoBtn) {
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
} else {
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
[self presentViewController:picker animated:YES completion:nil];
}
But these are the best options, I like the UIAlertView the most to be honest
老实说,这对用户来说是更多的点击次数,但这也是我的看法。 以下是您可以如何做到这一点,创建您的 UIAlertView ,然后在其委托(delegate)方法中放置一个条件:
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
NSString *BtnSelected = [alertView buttonTitleAtIndex:buttonIndex];
if([BtnSelected isEqualToString:@"choosePhotoBtn"] {
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
} else {
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
}
[self presentViewController:picker animated:YES completion:nil];
}
关于iOS7 : What is the best way to give the user the ability to choose between taking a photo and going to a photo gallery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20356296/