2014-03-13 86 views
5

任何人都知道這是如何完成的?在iOS中動畫幻燈片放映

http://youtu.be/r_cII4_aq_A

一般情況下,這個想法是真棒,但我想知道怎麼做每一個具體的事情。在視頻中,頁面被快速滑動以至於無法看到,但是當您從一個頁面切換到另一個頁面時,每個像素都會平滑過渡爲新的顏色。另外,當你離開屏幕時,圖標變小到最小尺寸真的很酷。

也許有一些第三方庫提供協議,它相對容易實現,但我找不到它。如果沒有,我認爲它只是一個視圖控制器並排顯示多個視圖,當您拖動手指時,它會計算每個視圖需要的位置以及每個像素需要的顏色。

+1

這些東西都是用UIScrollViews完成的。 UIScrollViews在iOS 7中擁有超強大的功能。 – Murillo

+0

所以它是一個水平滾動條? –

+1

是的,deltaX控制背景圖像的alpha值和圖標/文本的大小。好玩的東西。編輯:deltaX是指頁面靜止位置和當前偏移之間的差異。 – Murillo

回答

1

我想你現在已經擁有了它。但如果你仍然有任何疑問,我的動畫是:https://gist.github.com/mnmaraes/9536364

反正,玩得開心。

+0

感謝噸,我喜歡第二個視圖控制器的懶惰初始化 –

0

這是一個動畫漸變,所以:

[UIView animateWithDuration:0.5 
         delay:0.0 
        options:UIViewAnimationOptionTransitionCrossDissolve 
       animations:^{ 
    _backgroundImageView.image = nextImage; 
} completion:nil]; 

應的背景部分做的伎倆。

對於前景/圖標部分,您可以爲轉換設置動畫效果,以在視圖滑入和滑出時縮放和平移視圖。

+0

我不認爲這很簡單...你可以拖動一半然後停下來,所有的像素將在一個圖像和另一個圖像之間進行一半的過渡... –

+0

你也可以手動如果需要保持「半按」行爲,請在拖動時調整每個圖像的alpha值。這是一個溶解動畫,實際上只是在將新圖像的alpha增加到1的同時將舊圖像的alpha縮小到0. –

+0

由於滑動速度過快,因此很難在視頻中看到,但是如果您慢慢地滑動,圖像緩慢褪色,像素的變化速度取決於手指的移動速度,如果您拖動到下一個屏幕的一半,則會返回到前一個屏幕 –