立即响应ScrollView上的子视图的手势
Posted Sinner_Yun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了立即响应ScrollView上的子视图的手势相关的知识,希望对你有一定的参考价值。
self.myScrollView.delaysContentTouches = YES;
self.myScrollView.CanCancelContentTouches=NO;
写了一个继承scrollview的类,并在里面实现了touch事件,但是如果要相应touch事件,必须要先让手指在scrollview上停留一会,否则,手指一滑动,直接进scroll的事件了,根本不会触发touch事件。
下面是我在scrollview里面重写的touch事件,那几个NSLog如果手指不停留,更本就不会触发!
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"PageScrollView Touch begin");
if(!self.dragging)
{
[[self nextResponder] touchesBegan:touches withEvent:event];
}
[super touchesBegan:touches withEvent:event];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"PageScrollView Touch Move");
if(!self.dragging)
{
[[self nextResponder] touchesMoved:touches withEvent:event];
}
[super touchesMoved:touches withEvent:event];
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"PageScrollView Touch End");
if(!self.dragging)
{
[[self nextResponder] touchesEnded:touches withEvent:event];
}
[super touchesEnded:touches withEvent:event];
}
具体地实现有所不同,需要先将delaysContentTouches设 置为NO,CanCancelContentTouches设置为YES,而后使用- (BOOL)touchesShouldCancelInContentView:(UIView *)view来决定scrollview是否需要滚动。
以上是关于立即响应ScrollView上的子视图的手势的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发中解决UITableView嵌套ScrollView(UICollectionView)的手势冲突
iPhone UIScrollview:当位于 Scroll View 的子 UIView 上的 480 像素以下时,按钮不响应