备注:希望文档坚持不断更新,节约更多的踩坑时间.
1) Iphonex适配,iphonex 手机,当前页面ViewController使用全屏tableview,页面无导航栏时,顶部出现44高度的空白解决方法:
if #available(iOS 11.0, *) {
table.contentInsetAdjustmentBehavior = .never
}
2) 解决隐藏导航栏后,如果是本页面状态栏透明,tableview全屏下,tableview的contentofSet.x 不是从0开始而是从20开始:
self.automaticallyAdjustsScrollViewInsets = false
self.table.contentInset = UIEdgeInsets.init(top: 0, left: 0, bottom: 0, right: 0)
3) 部分机型 ,ios11以后,自定义导航栏按钮点击无反应:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.navigationController?.navigationBar.isHidden = true
self.navigationController?.navigationBar.isUserInteractionEnabled = false
}
一定要放在viewdidappear中
4) ios 11系统以后,部分机型,当前页面是uitableview 嵌套uitableview, 点击区域整个半屏幕有时无效
publicfuncscrollViewDidEndDecelerating(_scrollView:UIScrollView) {
//修复ios11 首页如果内容不超过两页后,上拉后,右边页面不能点击
if#available(iOS11.0, *) {
ifletview =self.table{
view.removeFromSuperview()
self.view.addSubview(view)
self.resetTableViewFrame()
}} }
//MARK: - 重置tableFrame
funcresetTableViewFrame(){
table.frame=self.view.frame
self.view.sendSubview(toBack:table)
//iphonx适配,tableView页面无导航栏时,顶部出现44高度的空白
if#available(iOS11.0, *) {
table.contentInsetAdjustmentBehavior = .never
}
}
5) Must translate autoresizing mask into constraints to have _setHostsLayoutEngine:YES. (null)
出现此问题,检查下 xib右边的属性,子视图是不是UIView,之前粗心写错了,写成了XXXCell,与cell同名了