特定区域的UIGesture识别器

时间:2016-12-08 16:14:16

标签: ios objective-c

我有包含UIView的scrollview,其中我有带文本的标签。我想要的是,添加点击手势识别器来解除视图。

我试过以下:

grades = ["Select", "Choice", "Prime"]
steaks = []
grades.each do |grade|
  s = Steak.new
  s.grade = grade
  steaks << s
end

然而,当用户点击滚动的任何地方(包括带文字的视图)时会遇到回调。如何防止?

3 个答案:

答案 0 :(得分:1)

您正在向scrollview添加gestureRecognizer。您可以在任意位置创建一个emty视图,并将gestureRecognizer添加到其中。

答案 1 :(得分:0)

handleSingleTap函数中,从手势中获取触摸位置,然后使用CGRectContainsPoint查看触摸是否发生在某个矩形内。如果是,请执行您的解雇,否则,忽略触摸。

答案 2 :(得分:-1)

只需从UITapGestureRecognizer回调中获取触摸点,然后查看它是否发生在某个CGRect中。

- (void) handleSingleTap:(UITapGestureRecognizer *)tapRecognizer {
    CGPoint touchPoint = [tapRecognizer locationInView:nil];
    if (!CGRectContainsPoint(self.containerView.frame, touchPoint)) {
        //Tap Touch point is NOT on the container
    }
}