2013-02-28 2 views
1

У меня есть местозаполнитель UIImageView (загружен из .xib), который я хочу загрузить с изображением задней стороны карты, а затем перевернуть на переднее изображение.Установка предыдущего изображения прямо перед вызовом transitionWithView

[cardView setImage:backCardImage]; 
[UIView transitionWithView:cardView 
        duration:1   
        options:UIViewAnimationOptionTransitionFlipFromLeft 
       animations:^{   
        [cardView setImage:frontCardImage]; 
       } 
       completion:NULL]; 

Проблема заключается в том, что исходное изображение начинается с не backCardImage, вместо этого, он использует не изображения (то есть пустое изображение) из моего файла .xib. Если бы у меня был backCardImage, загруженный в .xib, и вы вызывали только transitionWithView, я считаю, что он будет работать правильно, но мне бы очень хотелось иметь два вызова (setImage и transitionWithView) в том же методе. Есть какой-либо способ сделать это? Нужно ли мне что-то звонить между ними?

Я пробовал использовать UIViewAnimationOptionBeginFromCurrentState, но это тоже не работает.

ответ

2

CardView не будет рисовать, даже если вы поместите setNeedsDisplay, до следующего цикла рисования, поэтому сначала вам нужно установить это изображение в другом методе или переместить анимацию в другой метод и вызвать его с помощью функции performSelector: withObject: afterDelay :. Даже задержка 0 будет работать. Я не думаю, что анимация выглядит очень хорошо, потому что вы видите только обратное изображение на мгновение перед флип (кажется, что задержка на 0,1 или 0,2 секунды выглядит лучше). Почему бы не установить обратное изображение раньше? Какова цель изображения-заполнителя в этом контексте?

+0

thx человек. вы спасаете мой день и мозг. где вы получили эту информацию, которая не будет рисовать? – sacred