我用canCancelContentTouches来使用UIScrollView的取消触摸功能。(iphone)我可以让UIScrollView只识别水平拖动吗?
但是,我想要uiscrollview尝试取消触摸,当它检测到水平拖动(不垂直)。
(希望解决方案将可<下的iOS 3.13)
谢谢
我用canCancelContentTouches来使用UIScrollView的取消触摸功能。(iphone)我可以让UIScrollView只识别水平拖动吗?
但是,我想要uiscrollview尝试取消触摸,当它检测到水平拖动(不垂直)。
(希望解决方案将可<下的iOS 3.13)
谢谢
落实UIScrollViewDelegate
,然后用这样的:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[scrollView setContentOffset: CGPointMake(0, scrollView.contentOffset.y)];
}
另一种方法是有一个UIScrollView这小于或等于其父视图的大小并禁用“总是反弹水平”。
我想我会使用的方法scrollViewWillBeginDragging 在UIScrollViewDelegate 发现里面如果用户水平或不会我可以控制...
scrollViewWillBeginDragging:
告诉代表当滚动视图即将开始滚动内容。
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
参数
滚动视图
的涡旋视图对象,它是关于滚动内容视图。
讨论
直到发生了一个小的距离拖动代表可能不会收到此消息。
供货情况 适用于iOS 2.0及更高版本。
我发现以限制滚动视图的运动的最安全和最成功的方法是子类的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];
}