ios tableviewcell上点击按钮禁用时点击走了cell点击事件的解决办法

tableViewCell上, 如果cell上的按钮禁用, 点按钮相当于点击cell,走点cell的方法; 如果cell上的按钮为启用,点击按钮,才走按钮点击方法

如何在禁用按钮时点击按钮不走cell点击方法呢,在cell中重写方法:

// 判断点击的point是否在cell的Button之上
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

 
  

办法如下:

// 判断点击的point是否在cell的Button之上
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{
    BOOL isInside = [super pointInside:point withEvent:event];
    for (UIView *subView in self.subviews.reverseObjectEnumerator) {
        // 获取Cell中的ContentView
        if ([subView isKindOfClass:NSClassFromString(@"UITableViewCellContentView")]) {
            for (UIView *sSubView in subView.subviews.reverseObjectEnumerator) {
                // 获取ContentView中的Button子视图
                if ([sSubView isKindOfClass:[UIButton class]]) {
                    // point是否在子视图Button之上
                    BOOL isInSubBtnView = CGRectContainsPoint(sSubView.frame, point);
                    if (isInSubBtnView) {
                        return _isDoneBtn.userInteractionEnabled;
                    }
                }
            }
        }
    }
    return isInside;
}


 
  


你可能感兴趣的:(ios tableviewcell上点击按钮禁用时点击走了cell点击事件的解决办法)