美文网首页
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