2011-02-15 23 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];  
} 
相关问题