當有人使用擦除手勢將內容從左向右滾動時,我想讓背景圖像以相同方向滾動,但速度不同。就像20年前這些經典遊戲所做的一樣(請記住,任何人都可以)在UIScrollView上以不同速度滾動背景
回答
你可以用CoreAnimation來做到這一點。你會想要鉤入scrollViewDidEndDragging:willDecelerate:
和scrollViewWillBeginDecelerating:
UIScrollViewDelegate方法。然後通過更改中心位置在圖像上開始動畫。有關動畫的更多信息,請參閱this SO article。
我通過使用兩個UIScrollView
實例完成了這個實例。第一個是顯示實際內容的位置,第二個(位於第一個z順序後面)是我的移動速度較慢的背景。從那裏,頂部UIScrollView
有一個代理附加到它,contentOffset
更改時得到通知。該代表反過來以編程方式設置背景滾動器的contentOffset
,與常數相乘以減慢相對於前景的向下滾動。所以,舉例來說,你可能有這樣的:
// Defined as part of the delegate for the foreground UIScrollView
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
UIScrollView* scroll_view(static_cast<UIScrollView*>(bkg_scroller_m.view));
CGPoint offset(scrollView.contentOffset);
offset.x = offset.x/3;
offset.y = offset.y/3;
// Scroll the background scroll view by some smaller offset
scroll_view.contentOffset = offset;
}
,您可以輕鬆實現滾動視圖下它與一個UIImageView並滾動做到這一點... 你有這樣的事情結束了...與backgroundImageView是一個UIImageView添加到視圖子視圖之前......你可以爲你想不性能問題
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
float factor = scrollView.contentOffset.x/(scrollView.contentSize.width - 320);
if (factor < 0) factor = 0;
if (factor > 1) factor = 1;
CGRect frame = backgroundImageView.frame;
frame.origin.x = factor * (320 - backgroundImageView.frame.size.width);
backgroundImageView.frame = frame;
}
這太棒了。這應該是被接受的答案! – quantum 2012-07-14 01:13:31
這是絕對的工作 – 2014-12-16 05:11:46
例如,你有多個scrollviews層儘可能多的圖像意見,希望他們滾動差別速度。這裏是Salamatizm答案修改代碼庫:
CGSize screenSize = [[UIScreen mainScreen] bounds].size;
float factor = scrollView.contentOffset.x/(scrollView.contentSize.width - screenSize.width);
if (factor < 0) factor = 0;
if (factor > 1) factor = 1;
CGSize parralaxSize = self.parralaxBackgroundView.contentSize;
CGPoint parallaxOffset = CGPointMake(-(factor * (screenSize.width - parralaxSize.width)), 0);
[self.parralaxBackgroundView setContentOffset:parallaxOffset animated:NO];
- 1. UIScrollView背景圖像滾動速度比內容快
- 2. CSS多背景以不同的速度
- 3. 背景圖像也滾動同時滾動內容在UISCROLLVIEW
- 4. 更改UIScrollView滾動速度
- 5. 快速滾動背景
- 6. UIScrollView滾動到背景視圖
- 7. 看看用戶滾動UIScrollView的速度
- 8. UIScrollview scrollViewShouldScrollToTop - 減慢滾動速度
- 9. 如何降低UIScrollview的滾動速度?
- 10. 在cocos2d中滾動具有不同第一背景的背景
- 11. 以頁面滾動的不同速度滾動項目
- 12. 如何使UIScrollView以特定速度自動滾動?
- 13. UIScrollView不滾動大高度
- 14. 滾動速度自動滾動速度
- 15. 快速無盡的滾動背景
- 16. 背景圖像慢速滾動
- 17. 慢速滾動(視差)背景
- 18. 讓div以不同的速度向上滾動,但在同一地點結束
- 19. viewForZoomingInScrollView UIScrollView背景和圖像不同步
- 20. 滾動背景
- 21. 滾動背景
- 22. 滾動背景
- 23. 我們能趕上的UIScrollView的默認滾動速度更快
- 24. 垂直滾動div不同速度
- 25. 不同速度的垂直滾動列
- 26. 不同的滾動速度Android
- 27. 如何加快背景圖像的滾動速度?
- 28. 如何更改滾動背景pygame的速度?
- 29. Python(Pygame) - 以不同速度向背景移動的對象實例
- 30. 以不同的圖像作爲背景在視覺基礎上滾動
的Het SLF,我嘗試了與核心動畫,但後來我去滾動很慢得多,因爲它sutch不覺得好了。里斯 – 2009-09-09 13:47:46