2012-04-14 11 views
-5

Ich werde eine Schaltfläche und Bildansicht erstellen. Ich werde IBAction für die Schaltfläche erstellen, um UIImagepicker zu öffnen, um das Foto zu machen. Ich brauche danach Das Bild muss in der Bildansicht zeigen. Wie bekomme ich das.Kann mir bitte helfen.iphone sdk wie man ein Bild von der Kamera macht und das Bild in der gleichen Ansicht zeigt?

+3

möglich Duplikat [UIImagePickerController, UIImage, Speicher und mehr?] (Http://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more) – CodaFi

+0

Haben Sie jemals versucht, dies zu verweisen [Dokumentation] (http://developer.apple.com/library/ios/#documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html)? –

Antwort

5

Rufen Sie diese IBAction Methode auf einen Klick auf die Schaltfläche. Es öffnet sich UIImagePickerController, um ein Bild von der Kamera aufzunehmen.

-(IBAction)openCamera 
{ 
    @try 
    { 
     UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
     picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
     picker.delegate = self; 

     [self presentModalViewController:picker animated:YES]; 
     [picker release]; 
    } 
    @catch (NSException *exception) 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Camera" message:@"Camera is not available " delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 
    } 
} 

Dieser Delegat wird aufgerufen, wenn Sie mit der Bildaufnahme fertig sind. Speichern Sie das Bild in Ihrem UIImageView.

-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info 
{ 
    [picker dismissModalViewControllerAnimated:YES]; 
    self.imageView.image=[info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
} 
+0

Vielen Dank. Aber es dauert zu viel Zeit, um nach dem Fotografieren wieder zur Ansicht zurückzukehren. – Univer

+0

Zu viel? Wie viele Sekunden? Genau?? –

+0

6 Sekunden :-) und zeigt in Landschaft in Bildansicht, wenn ich Foto im Hochformat mache ... sorry, aber das ist meine letzte Frage .. – Univer

1

Sie können UIImagePickerDelegate in einer Header-Datei (.h) erklären, und dann auf die Schaltfläche Click-Ereignis das unten Code schreiben.

-(IBAction)YourMethodName_Clicked:(id)sender 
{ 
UIImagePickerController * picker = [[UIImagePickerController alloc] init]; 
     picker.delegate = self; 
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
       picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
       popover = [[UIPopoverController alloc] initWithContentViewController:picker]; 
       [popover presentPopoverFromRect:CGRectMake(0.0, 0.0, 400.0, 400.0) 
             inView:self.view 
         permittedArrowDirections:UIPopoverArrowDirectionAny 
             animated:YES]; 

//    [self presentModalViewController:picker animated:YES]; 
      } 
      else{ 
       UIAlertView *altnot=[[UIAlertView alloc]initWithTitle:@"Camera Not Available" message:@"Camera Not Available" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
       altnot.tag=103; 
       [altnot show]; 
       [altnot release]; 

      } 
} 

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


    [picker dismissModalViewControllerAnimated:YES]; 
    UIImageView *imgview1=[[UIImageView alloc]initWithImage:[info objectForKey:@"UIImagePickerControllerOriginalImage"]]; 


    imgmain1.frame=CGRectMake(0.0, 0.0, 320.0, 460.0);//set your frame here 
    [self.view addSubview:imgmain1]; 
    [imgmain1 relese]; 

} 
Verwandte Themen