iOS实现ScrollView中子控件view的触摸事件响应
Posted N4
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS实现ScrollView中子控件view的触摸事件响应相关的知识,希望对你有一定的参考价值。
实现UIScrollView子类
#import "EgItemScrollView.h"
@implementation EgItemScrollView
- (instancetype)init
{
self = [super init];
if (self) {
//子控件响应触摸事件 NO表示立即响应,YES表示延迟响应
self.delaysContentTouches = NO;
// NO ScrollView 不处理消息由子视图处理 默认是YES
self.canCancelContentTouches = YES;
}
return self;
}
// 当设置canCancelContentTouches=YES时,除了touchBegin以外的所有触摸事件响应前会调用
// NO 由子视图处理消息,YES 子视图不响应消息处理
- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
// myView view 自己响应消息
if ([view isKindOfClass:NSClassFromString(@"myView")]) {
return NO;
}
return [super touchesShouldCancelInContentView:view];
}
// 在触摸事件开始相应前调用
// 优先于 touchesShouldCancelInContentView 判断touchBegin 默认是YES
- (BOOL)touchesShouldBegin:(NSSet<UITouch *> *)touches withEvent:(nullable UIEvent *)event inContentView:(UIView *)view{
if ([view isKindOfClass:NSClassFromString(@"myView")]) {
return YES;
}
return NO;
}
@end
以上是关于iOS实现ScrollView中子控件view的触摸事件响应的主要内容,如果未能解决你的问题,请参考以下文章
ios的控件UIScrollView的位置定位---------逐渐积累