1、 重写touch方法
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
CGPoint touchPoint = [[touches anyObject] locationInView:self]; //找出point 点
if (!CGRectContainsPoint(self.backView.frame, touchPoint)) { // 是否包含这个点
if ([self.delegate respondsToSelector:@selector(clickCustomPickerView:)]) {
[self.delegate clickCustomPickerView:self];
}
}
}
2、重写view的hitTest方法
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{}
// 同样是否包含什么什么点,不过这个相对复杂点,比较好应用的地方就是点击左边图片可以响应的是右边的按钮,只需要当包含左边图片的时候就return leftButton.这样就会响应leftbutton的target了。或者你干脆如果是(左边图片 || 右边的按钮)这样或运算判断然后直接响应同一个事件,也是可以的。
3、添加手势 UITapGestureRecognizer
4、 这个如果上面的都不熟悉也不想了解,那就换成按钮咯,不过不鼓励这样做。这样好处是方便,虽然层级多了,但也很好理解和处理。
网友评论