在父视图中
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
{
NSArray *subViews = self.subviews;
if ([subViews count] > 1)
{
for (UIView *aSubView in subViews)
{
if ([aSubView pointInside:[self convertPoint:point toView:aSubView] withEvent:event])
{
return YES;
}
}
}
if (point.x > 0 && point.x < self.frame.size.width && point.y > 0 && point.y < self.frame.size.height)
{
return YES;
}
return NO;
}
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
UIView *view = [super hitTest:point withEvent:event];
if (view == nil) {
// 转换坐标系
CGPoint newPoint = [self.hideKeyBoardBtn convertPoint:point fromView:self];
// 判断触摸点是否在button上
if (CGRectContainsPoint(self.hideKeyBoardBtn.bounds, newPoint)) {
view = self.hideKeyBoardBtn;
}
}
return view;
}