我有一个包含一些UIView的UIScrollView。我的目标是当UIView被触摸/释放触摸时捕获触摸事件。
我遇到的问题是UIScrollView似乎吞噬了所有的触摸事件,尤其是当你在一个UIView上按住太久时。
我希望UIScrollView在自动滚动时禁用用户交互,这是否可行?
我已经尝试对UIViews进行子类化,但其中触摸事件从未被调用。
tapGesture
附加到您的scrollview
上: UITapGestureRecognizer* tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureUpdated:)];
tapGesture.delegate = self;
tapGesture.numberOfTapsRequired = 1;
tapGesture.numberOfTouchesRequired = 1;
[self addGestureRecognizer:_tapGesture];
那么在你的- (void)tapGestureUpdated:(UITapGestureRecognizer *)tapGesture
方法中,你需要负责确定触摸位置并找出是否有一个子视图被选中。然后你可以调用委托上的方法来通知特定视图已被触摸。
也许您可以重新排列视图,使具有触摸识别器对象的视图是应用程序识别的。将其在文档大纲中移至顶部(滚动视图)。