原因分析:因为从iOS 11开始,Controller中的automaticalAdjustsScrollViewInsets属性被废弃了,所以当tableView超出安全区域时系统自动调整了SafeAreaInsets的值,进而影响adjustedContentInset的值,adjustedContentInset的值决定了tableview的内容和边缘的距离,所以最终会导致tableview下移statusbar的高度或者navigationBar的高度

解决方案:
方案一:tableView .contentInsetAdjustmentBehavior = .never
方案二:设置tableview的fram或者snp约束的时候y为负的statusBar或者负的navigationBar的高度

网友评论