[iOS] 关于iOS14 之后TableViewCell 的contentView层级变化

问题描述

有用户反馈,在iPhone 12的手机上,我们有一个表单无法输入内容,表单是在tableViewCell内嵌套UITextView和UITextField实现的。

定位问题

找了一个iPhone 12的测试机,在经过调试后,控制台没发现异常log,操作中也没有响应。最后查看了视图的层级,发现在TableViewCell的顶层覆盖了一个ContentView,视图层级如下:

这个ContentView将交互事件拦截了,导致底层的TextView没有响应;

解决问题

找到了问题,就猜测是不是直接把SubVew添加到了self上,而不是self.contentVew,查看代码,果然是这样,只需要进行下面的修改:

// 修改前
[self addSubview:self.titleField];

// 修改后
[self.contentView addSubview:self.titleField];

后记

在之前,直接将TableViewCell的subView直接添加到self上是没有问题的,估计是iOS 14 之后,层级有所调整,必须将subView添加到self.contentView上。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容