我有包含UIView的scrollview,其中我有带文本的标签。我想要的是,添加点击手势识别器来解除视图。
我试过以下:
grades = ["Select", "Choice", "Prime"]
steaks = []
grades.each do |grade|
s = Steak.new
s.grade = grade
steaks << s
end
然而,当用户点击滚动的任何地方(包括带文字的视图)时会遇到回调。如何防止?
答案 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
}
}