2010-05-17 85 views
2

我在UIScrollView(涵蓋全屏幕的寬度)UIImage(圖像的寬度是> 320px),並希望分頁效果。UIScrollView自定義傳呼距離

我發現的所有教程/例子解釋瞭如何使用多個UIImages或UIVIews來完成它,但是我只在UIScrollView中有1個UIImage。我的目標是創造一個像捲尺一樣的效果。並且滾動視圖應該在磁帶的每個標記上「頁」?

如何在距離更小的UIScrollView的寬度上進行分頁?

回答

1

我想不出比運行中的數學更清潔的解決方案。如果所需的頁面長度比「滑動」UIImage的100px,以便它保持相對於實際頁面。因此,一些類似於:

CGFloat pageWidth = 100; 
int numPages = ceilf(myImageView.bounds.size.width/pageWidth); 
scrollView.contentSize = CGSizeMake(numPages * scrollView.bounds.size.width, 
            scrollView.bounds.size.height); 

然後繼承滾動視圖的layoutSubviews方法:

- (void)layoutSubviews { 
    int numPages = ceilf(myImageView.bounds.size.width/pageWidth); 
    CGRect visibleBounds = [self bounds]; 
    CGFloat start = visibleBounds.origin.x; 
    CGFloat offset = start/pageWidth; 
    myImageView.frame = CGRectMake(offset, myImageView.frame.origin.y, 
            myImageView.frame.size.width, 
            myImageView.frame.size.height); 
} 

我還沒有在所有測試這一點,但希望它可以讓你在工作軌道。這個應該正在做的是移動圖像,每當你滾動,使它看起來像每個「頁面」只移動圖像100px。

+0

謝謝MrHen! ...只是一個後續問題...在你的layoutSubvies方法中,numPages的目的是什麼? 歡呼! – alex25 2010-05-23 03:29:32

+0

嗯......我不記得了。我可能忘了把這條線路拉出來,很明顯,它沒有做任何事情。 :) – MrHen 2010-05-24 13:23:22