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;
}

posted @ 2016-06-28 14:41  宋婷婷  阅读(973)  评论(0编辑  收藏  举报