Что / Как запустить анимацию закрытия радужной оболочки UIImagePickerController? - PullRequest
3 голосов
/ 23 августа 2010

Я использую пользовательский вид наложения и показывает CameraControls = NO. Когда я закончу, я отклонюModalViewControllerAnimated: YES. Похоже, что происходит, что радужная оболочка кажется полностью закрытой (т.е. без закрывающей анимации - просто poof и она закрыта), а затем сразу же скользит вниз с экрана.

В качестве теста я вручную вызвал viewWillDisappear на UIImagePickerController, и это заставляет замкнутую радужную оболочку появляться, но опять же нет плавной анимации.

Я также попытался включить завершение в длинную анимационную транзакцию, и это только замедлило повторное появление базовой навигационной панели инструментов. Радужка вела себя так же, как и выше.

Я не хочу делать свою собственную анимацию радужной оболочки - это было бы не круто!

PS: использование SDK 4.0

1 Ответ

0 голосов
/ 24 августа 2010

Чтобы частично ответить на мой собственный вопрос, лучшее, что я смог до сих пор придумать, это:

- (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];
}

Это на самом деле не оживляет радужную оболочку, но, по крайней мере, сразу появляется на экране, так чтопользователь признает, что фотографирование сделано.Я также не очень рад, что viewWillDisappear вызывается дважды на UIImagePickerController - я не уверен, что он гарантированно безопасен.

Кроме того, над радужной оболочкой появляется строка состояния.

Надеюсь, у кого-то есть лучшее решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...