美文网首页
SWTableViewCell 适配iOS14

SWTableViewCell 适配iOS14

作者: money_ac9e | 来源:发表于2020-11-13 17:27 被阅读0次

    问题:侧滑不能使用

    经过查看发现是iOS14的侧滑失败,使用的是第三方 SWTableViewCell

    怎么回事呢?

    最终使用xcode查看层的工具看出问题 如下图

    image.png

    可以看到UITableViewCellContentView 没有在scrollview上,并且它们两个并行且UITableViewCellContentView在上面,这样scrollview怎么可能滚动

    经此查找代码如下

        // Add the cell scroll view to the cell
        UIView *contentViewParent = self;
        UIView *clipViewParent = self.cellScrollView;
        if (![NSStringFromClass([[self.subviews objectAtIndex:0] class]) isEqualToString:kTableViewCellContentView])
        {
            // iOS 7
            contentViewParent = [self.subviews objectAtIndex:0];
            clipViewParent = self;
        }
        NSArray *cellSubviews = [contentViewParent subviews];
        [self insertSubview:self.cellScrollView atIndex:0];
        for (UIView *subview in cellSubviews)
        {
            [_contentCellView addSubview:subview];
        }
    

    这里取出self.subviews中的第0个判断是否是UITableViewCellContentView
    如果不是就取出来 作为contentViewParent

    这里打印我们看下iOS14是什么样的?


    image.png

    可以看到第1个是UITableViewCellContentView
    这样我们就找到原因了 然后修改下代码

        // Add the cell scroll view to the cell
        UIView *contentViewParent = self;
        UIView *clipViewParent = self.cellScrollView;
        
        BOOL isHaveContentView = NO;
        for (UIView *view in self.subviews) {
            if ([NSStringFromClass([view class]) isEqualToString:kTableViewCellContentView]) {
                isHaveContentView = YES;
            }
        }
        
        if (!isHaveContentView)
        {
            // iOS 7
            contentViewParent = [self.subviews objectAtIndex:0];
            clipViewParent = self;
        }
        NSArray *cellSubviews = [contentViewParent subviews];
        [self insertSubview:self.cellScrollView atIndex:0];
        for (UIView *subview in cellSubviews)
        {
            [_contentCellView addSubview:subview];
        }
    

    在运行 解决了问题

    这里不知道为什么使用iOS14.2的模拟器没有这个问题

    相关文章

      网友评论

          本文标题:SWTableViewCell 适配iOS14

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