2012-06-11 43 views
0

我需要檢測什麼時候scrollView是在320 x執行一些代碼,但contentOffset似乎總是0.當我設置position==0代碼執行,但我需要它執行在320.有什麼想法?contentOffset不會改變從0

(void)scrollViewDidEndDecelerating:(UIView *)sender 
{ 
    int position = (_scrollView.contentOffset.x); 
    if(position==320) 
    { 
    // Code Here 
    } 
} 

回答

4

使用發件人參數,而不是任何變量_scrollView referes到(可能無法正確掛接)

另外,不要投的contentOffset.x爲int,這真是一個CGFloat的

(void)scrollViewDidEndDecelerating:(UIScrollView *)sender 
{ 
    if(sender.contentOffset.x==320) 
    { 
    // Code Here 
    } 
} 
1

此滾動視圖已經停下來後,被稱爲(後減速和彈跳等),因此,如果您的滾動視圖是320寬,其contentSize.width同樣是32​​0(或更少,我認爲),那麼這將解釋爲什麼它總是停在0如果您將contentSize.width設置爲640,那麼當您一直滾動到右側(將內容拖動到左側)時,那麼contentOffset.x在休息時應該是320。

+--------------+ <- Scroll View, 320 wide. 
|    | 
|+-------------------------------+ <- contentSize.width is 640 
||        | 
||        | 
||        | 
|+-------------------------------+ 
|    | 
+--------------+ 
^ contentOffset.x is 0 

        +--------------+ <- Scroll View, 320 wide. 
        |    | 
+-------------------------------+| <- contentSize.width is 640 
|        || 
|        || 
|        || 
+-------------------------------+| 
        |    | 
        +--------------+ 
       ^contentOffset.x is 320 

從上圖中可以看出,內容偏移量是內容視圖中與滾動視圖的原點對齊的點。