2014-02-12 71 views
0

我希望當用戶第一次加載屏幕滾動視圖自動滾動......所以我用這個代碼:編程方式滾動的UIScrollView然後壓倒一切的帶手動滾動

[UIView animateWithDuration:(float)1.25f 
        animations:^{ 
         myScrollView.contentOffset = CGPointMake(2000, 800); 
        } 
        completion:nil]; 

因此,代碼作品很棒,UIScrollView模擬了我想要的CGPoint的「滾動」(動畫),但是如果用戶想手動將它們放在手指上並開始滾動或停止滾動,它將滾動,但用戶無法覆蓋動畫直到完成後。

任何人都有一個更好的方法的任何想法與超馳功能設置動畫,當調用所述過程能力(我假定這將涉及滾動視圖的視圖的touchesBegan)

回答

1

只需添加UIViewAnimationOptionAllowUserInteraction你的動畫選項:

[UIView animateWithDuration:1.25f delay:0.0f options:(UIViewAnimationOptionAllowUserInteraction) animations:^{ 
        _scrollView.contentOffset = CGPointMake(0, 800); 
       } 
       completion:nil]; 

,並取消對UIScrollView的scrollViewWillBeginDragging:委託方法

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 
{ 
    //Storing current offset 
    CALayer *currentLayer = _scrollView.layer.presentationLayer; 
    CGPoint scrollBoundsOrigin = currentLayer.bounds.origin; 

    //Cancelling animations 
    [_scrollView.layer removeAllAnimations]; 

    //Restore offset 
    _scrollView.contentOffset = scrollBoundsOrigin; 
} 
+0

精彩的動畫!非常感謝!工作就像一個魅力:) –