2014-09-26 157 views
1

花了我幾周的時間來弄清楚這個簡單的技巧,所以讓我試試這個Q & A格式。動畫UIScrollView滾動

如何使用CoreAnimation動畫滾動UIScrollView? This answer過於複雜,儘管它確實朝正確的方向邁出了一步。

回答

0

簡單!

要使用Core Animation,您必須修改UIView底層CALayer的屬性。原來,當你滾動一個UIScrollView時,你所做的只是修改CALayer的bounds屬性(特別是origin.y組件)。因此,此代碼將做到這一點:

NSString *keyPath = @"bounds.origin.y"; 
[self.scrollView.layer setValue:[NSNumber numberWithFloat:0] forKeyPath:keyPath]; 

CABasicAnimation *bounceAnimation = [CABasicAnimation animationWithKeyPath:keyPath]; 
bounceAnimation.fromValue = [NSNumber numberWithFloat:100]; 
bounceAnimation.toValue = [NSNumber numberWithFloat:0]; 
bounceAnimation.duration = 2.0f; 

[self.scrollView.layer addAnimation:bounceAnimation forKey:@"someKey"];