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




阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tiebanshao/article/details/75091194
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭