2011-09-08 50 views
14

我遇到以下問題。獲取動畫滾動視圖的當前位置

我的子類,其contentOffset由該代碼動畫一個UIScrollView:

[UIView animateWithDuration:1.0 
         delay:1.0 
        options:options 
       animations:^{ 
        self.contentOffset = CGPointMake(label.frame.size.width, 0); 

       } 
       completion:^(BOOL completed) { 
        //some other stuff 
       }]; 

現在,當用戶「willBeginDragging」滾動視圖,我想停止當前的動畫和scrollview.contentoffset設置爲當前它在uianimation中的位置。

例如,用戶進入屏幕,1秒鐘後滾動視圖開始滾動,如果用戶在2秒後觸摸滾動並拖動它,則scrollview.contentoffset應該具有當前動畫位置的確切位置。

如果我在willbegindrag方法中獲得內容偏移值,它已經作爲動畫的最後一個值,因爲uianimation將值設置爲結束狀態,然後設置動畫。

我如何從運行的動畫獲取內容偏移的當前位置?

NSLog(@"pos of content x %f, y %f", [[self.layer presentationLayer] frame].origin.x, [[self.layer presentationLayer] frame].origin.y); 

我已經讀過關於表示層,但視圖本身不動畫,我需要scrollview.contentoffset。

mhh,有什麼想法? THX

已經解決:

的self.layer表示層是絕對正確的。

,但我不得不使用範圍而不是框架....

對不起,現在你和我知道:P

所以正確的代碼是:

CGPoint pos = [[self.layer presentationLayer] bounds].origin; 

在動畫製作中獲取動畫滾動視圖的當前位置。

回答

8

就可以得到內容,而滾動型是使用下面的代碼滾動偏移......

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 

NSLog(@"%f", scrollView.contentOffset.x); 

} 
+0

謝謝你這麼多 – SampathKumar

+0

所有收益0.000, –

+1

這個答案是題外話。問題是關於獲取contentOffset中間動畫。這個解決方案獲得contentOffset每個滾動調用。 – rizzes

相關問題