因为只会在UINavigationController进行跳转的时候才会出现这个问题,所以基本定位到问题出在了UINavigationController中。
发现了一行代码self.navigationBar.isTranslucent = false,iOS11的导航栏高度变化很大,而这句代码可能影响导航栏高度,所以可能问题在这里,注释后解决问题。
但是遇到一个新的问题,这个问题需要重新设置view的frame到导航栏下方。
但是之前经常固定将y设为64,但是iOS有两种导航栏高度,所以要动态计算导航栏高度。
self.navigationController!.navigationBar.frame.size.height + UIApplication.shared.statusBarFrame.size.height