2012-11-03 44 views
2

我有一個視圖控制器,而不是在屏幕的上半部分包含一個UIScrollView。在下半部分我有一個標籤。這是表格的詳細視圖,因此一旦從表格中選擇了一個項目,它就會加載該詳細視圖。您選擇的某些項目具有不同的變化,因此這是滾動視圖進入的位置。您可以向左和向右滾動以查看變化。當UIScrollView頁面更新標籤iOS

我想滾動視圖滾動時滾動視圖更改其文本的標籤。這裏是我用來檢測我在哪個頁面上:

CGFloat pageWidth = scrollView.frame.size.width; 
int page = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1; 

這將返回滾動視圖的「頁碼」。當用戶滾動到不同的頁面時,如何告訴標籤更改文本?我看了很多例子,包括自定義代表,但我似乎找不到一個好的解決方案。

作爲一個側面說明,要顯示的標題是一個數組所以​​將是完美的,一旦我能找到一種方法來告訴標籤(以及可能顯示在未來的任何其他人)進行更新。

回答

2

爲什麼不試試這個:

#define ScrollObjWidth 320.0f // Note: Use what size you need! 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView; { 
    float roundedValue = round(scrollView.contentOffset.x/ScrollObjWidth); 
    _label.text = [NSString stringWithFormat:@"%d", ((int)roundedValue - 1)]; 
} 

確保您UIViewControllerUIScrollViewDelegate,並且UIScrollView有它的delegate屬性設置爲UIViewController

希望有助於!

+0

簡而言之,令人驚歎! –

+0

這工作完美,我沒想到它是這麼簡單!非常感謝! –

+0

沒問題!很高興我能幫上忙! – msgambel

相關問題