2010-08-23 13 views
3

J'utilise une vue de superposition personnalisée et showsCameraControls = NO. Quand j'ai fini je rejetteModalViewControllerAnimated: OUI. Ce qui semble se produire est que l'iris semble complètement fermé (c'est-à-dire aucune animation de fermeture - juste pouf et il est fermé), puis glisse immédiatement hors de l'écran.Quoi/Comment déclencher l'animation close-iris de UIImagePickerController?

En tant que test, j'ai manuellement appelé viewWillDisappear sur le UIImagePickerController et cela fait apparaître l'iris fermé, mais encore une fois pas d'animation lisse.

J'ai également essayé d'encapsuler l'ignorer dans une longue transaction d'animation et cela a simplement ralenti la réapparition de la barre d'outils de navigation sous-jacente. L'iris s'est comporté comme ci-dessus. Je ne veux pas avoir à faire ma propre animation d'iris - ce serait pas cool!

PS: Utilisation sdk 4.0

Répondre

0

Pour répondre en partie à ma propre question, le mieux que j'ai pu arriver à ce jour est:

- (void)imagePickerController:(UIImagePickerController*)picker 
didFinishPickingMediaWithInfo:(NSDictionary*)info 
{ 
    [picker viewWillDisappear:YES]; 

    [self performSelector:@selector(processPickerImage:) 
       withObject:[[info objectForKey:UIImagePickerControllerOriginalImage] retain] 
       afterDelay:0.1]; 
} 

-(void) processPickerImage:(UIImage *)uiImage 
{ 

    // do stuff 
    [self dismissModalViewControllerAnimated:YES]; 
    // dismiss your custom overlay etc. 
    [uiImage release]; 
} 

Il ne fait pas l'anime iris, mais au moins il est à l'écran immédiatement, donc l'utilisateur reconnaît que la prise de photo est terminée. Je ne suis pas non plus content que viewWillDisappear soit appelé deux fois sur UIImagePickerController - je ne suis pas sûr que ce soit sûr.

La barre d'état apparaît également sur l'iris ce qui est gênant. J'espère que quelqu'un d'autre a une meilleure solution?