button点击事件不响应的解决方法(子视图大小超过父视图)
一开始封装了一个tableView的headerView,感觉完成得还不错,后来测试的时候发现,最下边的两个button的点击事件不响应。然后就。。。着急了。在网上查询了button点击事件不响应的原因,first,最低级的错误就是没写点击方法。可是我上边的button和下边的调用的是一个方法啊,这个pass掉。其次,无非就是前边有什么东西把button挡住了,然后,我看了一下层级关系,嗯。。。再次pass掉。那就剩下一个了,子视图大小超过父视图了。对啊,这两个button只是在4S上才会不响应,5S及以上完全没有问题啊。结果就是,在4S时,这个headerView的大小超过tableView了。所以,当子视图超过父视图时,会造成button点击事件不响应,就需要调用以下方法了
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
UIView *view = [super hitTest:point withEvent:event];
if (view == nil) {
CGPoint tempoint = [self.hotBtn convertPoint:point fromView:self];
if (CGRectContainsPoint(self.hotBtn.bounds, tempoint))
{
view = self.hotBtn;
}
}
return view;
}