Domanda

Voglio mostrare un avviso quando l'utente spara una foto e fare clic sull'uso strano che in iPhone OS 2.0 quando abbiamo scattare una foto che mostra un messaggio di carico di button.It, ma in iPhone OS 3.0 si vede nulla. Come posso mostrare un avviso anche c'è un modo per fissare il processo imagepicking? nella mia app a volte è lento e talvolta è veloce non ho questo numero yet.Does qualcuno lo sa?

È stato utile?

Soluzione

Nel tuo metodo "imagePickerController" si sta andando a voler visualizzare un UIAlertView. Di seguito si riporta il metodo completo di creazione di UIAlertView.

L'UIAlertView sarà visualizzato per la lunghezza del tempo che ci vuole per salvare l'immagine per l'album fotografico.

È inoltre necessario aggiungere il metodo "didFinishSavingWithError"

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)selectedImage editingInfo:(NSDictionary *)editingInfo
{
  if(picker.sourceType == UIImagePickerControllerSourceTypeCamera)
  {
    saveImage = [[UIAlertView alloc] initWithTitle:@"Saving Image..." message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil]; 

    UIActivityIndicatorView *waitView = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge] autorelease];
    waitView.frame = CGRectMake(120, 50, 40, 40);
    [waitView startAnimating];

    [saveImage addSubview:waitView];
    [saveImage show]; 
    [saveImage release];

    UIImageWriteToSavedPhotosAlbum(selectedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
  }

  [self dismissModalViewControllerAnimated:YES];
}

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
  // Was there an error?
  if (error == NULL)
   {
     NSLog(@"Image Saved");
     [saveImage dismissWithClickedButtonIndex:0 animated:YES]; 
   }
  else
   {
     // Error occured
   }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top