美文网首页
SWTableViewCell 适配iOS14的侧滑失败

SWTableViewCell 适配iOS14的侧滑失败

作者: 不是一个 | 来源:发表于2021-03-30 18:05 被阅读0次

    最近升级手机系统以后,发现左滑编辑手势失效,于是找到SWTableViewCell框架的问题.

    网上找了一些,发现不适用,于是自己做了修改,只对SWTableViewCell.m文件进行了修改.

    由于iOS 14之后 tableviewcell在初始化方法时,其subViews内容为空,致使cell的contentView没加到自定义的contentView上,于是修改如下:

    1. 首先定义一个宏 #define kCotentCellViewTag 54644 (数字可以随意)

    在创建 _contentCellView时给tag设定定义好的宏kCotentCellViewTag;

    _contentCellView.tag = kCotentCellViewTag;

    2. 接着实现递归方法如下:

    //遍历cell的子视图找到contentView,并确保在scrollView上面

    - (void)getSub:(UIView*)viewandLevel:(int)level {

        NSArray*subviews = [viewsubviews];

        // 如果没有子视图就直接返回

        if([subviewscount] ==0)return;

        for(UIView*subviewinsubviews) {

            if(subview.tag==kCotentCellViewTag) {

                for(intj =0; j<self.subviews.count; j++) {

                    UIView*tempView =self.subviews[j];

                    if([NSStringFromClass([tempViewclass])isEqualToString:kTableViewCellContentView]) {

                        [tempViewremoveFromSuperview];

                        [subviewaddSubview:tempView];

                        return;

                    }

                }

            }

            // 递归获取此视图的子视图

            [selfgetSub:subviewandLevel:(level+1)];

        }

    }

    3. 最后在layoutSubviews方法最后布局以后,对cell中subViews的contentView进行重排,调用第二步方法如下:

    [self getSub:self andLevel:1];

    完结.

    相关文章

      网友评论

          本文标题:SWTableViewCell 适配iOS14的侧滑失败

          本文链接:https://www.haomeiwen.com/subject/tmmghltx.html