我有一个UIScrollView
,里面有一些UIViews
。
我想要做的是抓住触摸/触摸UIViews的触摸事件。
我遇到的问题是UIScrollView
似乎吞下了所有的触摸事件,特别是如果你在UIView
上持有太长时间。
我最好希望UIScrollView
禁用userInteraction,因为它会自动滚动。
这可能吗?
我已经尝试了对UIViews
进行子类化,但从未调用过触摸事件。
答案 0 :(得分:4)
您可以在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
方法中,您有责任确定触摸的位置,并找出是否在您的某个子视图中进行了拣选。然后,您可以在委托上调用一个方法,该方法通知已触摸特定视图。
答案 1 :(得分:1)
也许重新排序您的视图,以便具有与之关联的触摸识别器对象的视图是应用程序识别的内容。将其在文档大纲中移动到顶部(滚动视图)