iOS14 SWTableViewCell 闪退问题

在升级iOS14 使用xcode12 开发工具打包,发现SWTableViewCell.m出现闪退现象

运行代码发现self.subviews 为空数组。导致闪退。

解决方法:

 在Add the cell scroll view to the cell之前,添加 [self contentView];即可。

延伸:

iOS14 之前,不管是 UITableViewCell 还是 UICollectionViewCell,不管使用 self 还是 self.contentView 亦或是 xib 添加控件,最后的视图层级由下到上都是 cell - contentView - custom subviews,其中 custom subviews 代表自己添加的控件。

iOS14 上,UITableViewCellUICollectionViewCell 的视图层级已经不一样了。

先看下 UITableViewCell

  • 代码创建 cell

    • 不添加任何控件,系统会自动创建出 contentView,视图层级由下到上为cell - contentView
    • 如果使用 [self addSubview:]; 添加控件,视图层级由下到上会变成 cell - custom subviews - contentView,这时候添加的控件在 contentView 下面,如果子控件有点击事件,会被 contentView 阻断掉
    • 如果使用 [self.contentView addSubview:]; 添加控件,视频层级由下到上会变成 cell - contentView - custom subviews,这时候跟 iOS14 之前是一致的。
    •  
      • 由于在 xib 中,添加的控件全部是在 contentView 上的,所以跟 iOS14 是一致的,视图层级由下到上为 cell - contentView - custom subviews
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值