2011-02-15 24 views

回答

4

落實UIScrollViewDelegate,然後用這樣的:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    [scrollView setContentOffset: CGPointMake(0, scrollView.contentOffset.y)]; 
} 

另一種方法是有一個UIScrollView這小於或等於其父視圖的大小並禁用「總是反彈水平」。

0

我想我會使用的方法scrollViewWillBeginDragging 在UIScrollViewDelegate 發現裏面如果用戶水平或不會我可以控制...

scrollViewWillBeginDragging:

告訴代表當滾動視圖即將開始滾動內容。

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView 

參數

滾動視圖

的渦旋視圖對象,它是關於滾動內容視圖。

討論

直到發生了一個小的距離拖動代表可能不會收到此消息。

供貨情況 適用於iOS 2.0及更高版本。

1

我發現以限制滾動視圖的運動的最安全和最成功的方法是子類的UIScrollView並重寫setContentOffset:動畫:setContentOffset:方法(下面的代碼)。

重寫這些方法的優點是,它直接改變所請求的contentOffset任何的UIKit代碼的開始之前作用於它,從而避免任何的副作用scrollViewDidScroll修改contentOffset時可能發生:或其他UIScrollViewDelegate方法。

- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated { 
    // restrict movement to horizontal only 
    CGPoint newOffset = CGPointMake(contentOffset.x, 0); 
    [super setContentOffset:newOffset animated:animated]; 
} 

- (void)setContentOffset:(CGPoint)contentOffset { 
    // restrict movement to horizontal only 
    CGPoint newOffset = CGPointMake(contentOffset.x, 0); 
    [super setContentOffset:newOffset];  
} 
相關問題