你不能淡出一個UIView(滾輪),同時淡入同樣的觀點...你可以只使用不同的UIViews
...
你可以做的是:
1)淡出中的當前位置的滾動條(於背景)
2),而滾輪是不可見的,它移動到正確的位置(沒有動畫)
3)淡入從背景
類似的卷軸:
// START FIRST PART OF ANIMATION
[UIView animateWithDuration:0.5 delay:0.0 options: options:UIViewAnimationOptionTransitionCrossDissolve|UIViewAnimationOptionAllowAnimatedContent animations:^{
pagingScrollView.alpha = 0;
} completion:^(BOOL finished) {
// FIRST PART ENDED
// MOVE SCROLLER (no animation)
pagingScrollView.contentOffset = CGPointZero;
// START SECOND PART OF ANIMATION
[UIView animateWithDuration:0.5 delay:0.0 options: options:UIViewAnimationOptionTransitionCrossDissolve|UIViewAnimationOptionAllowAnimatedContent animations:^{
// fadeIn - animated
pagingScrollView.alpha = 1;
} completion:^(BOOL finished) {
// ANIMATION ENDED
[self refreshPages];
}];
}];
新的編輯:
感謝amadour,誰教我用他的意見的東西,
我希望他可以自己添加一個答案,我會投他的票
無論如何,要一個swer到jowie原題:
我得到了正確的動畫只是移動contentOffset設置了動畫塊, 和消除UIViewAnimationOptionAllowAnimatedContent(不是真的需要),並通過pagingScrollView作爲參數transitionWithView
爲此工作我:
pagingScrollView.contentOffset = CGPointZero;
[UIView transitionWithView:pagingScrollView duration:3.0 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{
// pagingScrollView.contentOffset = CGPointZero; // move up, outside of animation block
} completion:^(BOOL finished) {
NSLog(@"-->> END amimation");
[self refreshPages];
}];
我不認爲這裏需要AllowAnimatedContent,因爲你不需要在轉換過程中出現基於屬性的動畫。順便說一下,您還可以嘗試使用setContentOffset設置內容偏移量:animated:顯式禁用滾動動畫。 – amadour