2014-01-29 5 views
0

Я хочу сфотографироваться с Stroyboard (потому что у меня нет iPhone)сфотографироваться с помощью раскадровки или XIb в Xcode

знаю, у меня есть код взять фото и выберите

, а затем

Что это самый простой способ, чтобы изменить размер/оптимизировать размер изображения с iPhone в

#import <UIKit/UIKit.h> 

@interface APPViewController : UIViewController <UIImagePickerControllerDelegate, UINavigationControllerDelegate> 

@property (strong, nonatomic) IBOutlet UIImageView *imageView; 

- (IBAction)takePhoto: (UIButton *)sender; 
- (IBAction)selectPhoto:(UIButton *)sender; 

@end 

#import "APPViewController.h" 

@interface APPViewController() 

@end 

@implementation APPViewController 

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 

     UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Error" 
                 message:@"Device has no camera" 
                 delegate:nil 
                 cancelButtonTitle:@"OK" 
                 otherButtonTitles: nil]; 

     [myAlertView show]; 

    } 

} 

- (void)viewDidAppear:(BOOL)animated { 

    [super viewDidAppear:animated]; 

} 

- (IBAction)takePhoto:(UIButton *)sender { 

    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.allowsEditing = YES; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 

    [self presentViewController:picker animated:YES completion:NULL]; 

} 

- (IBAction)selectPhoto:(UIButton *)sender { 

    UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 
    picker.allowsEditing = YES; 
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 

    [self presentViewController:picker animated:YES completion:NULL]; 


} 

#pragma mark - Image Picker Controller delegate methods 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

    UIImage *chosenImage = info[UIImagePickerControllerEditedImage]; 
    self.imageView.image = chosenImage; 

    [picker dismissViewControllerAnimated:YES completion:NULL]; 

} 

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 

    [picker dismissViewControllerAnimated:YES completion:NULL]; 

} 

@end 
+0

и нужно, чтобы сделать снимок из симулятора, если и нужно, чтобы сделать снимок и должно нуждаться в устройстве, и не может взять фото из имитатора –

+0

THK для ответа @Anbu .Karthik –

ответ

0

Вы должны проверить Камера доступна или нет для этого с помощью UIImagePickerController из

+ (BOOL)isSourceTypeAvailable:(UIImagePickerControllerSourceType)sourceType;

Для вашего сценария вы должны написать takePhoto метод такой:

- (IBAction)takePhoto:(UIButton *)sender { 
     if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
     { 
      //Do your stuff here 
     } 
     else 
     { 
      UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title" message: @"Camera is not available." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
      [alert show];  
     } 
    } 

EDIT:

Использование Simulator вы не можете взять фото. Вы должны требовать, чтобы устройство снимало фото или открывала камеру.

Возможно, это поможет вам.

Счастливое кодирование ... :)

+0

thk для ответа и открытой камеры с помощью Stroyboard возможно или нет. PLZ помогите мне –

+0

сфотографировать, что у вас должно быть устройство. Если у устройства нет камеры, тогда вы получите предупреждение от кода выше. –

+0

С раскадрой или симулятором невозможно фотографировать. –

Смежные вопросы