在运行时将UITableView添加到存在导航栏-y位置问题的UIViewController

在运行时将UITableView添加到存在导航栏-y位置问题的UIViewController,uitableview,uinavigationcontroller,swift2,uinavigationbar,ios9.2,Uitableview,Uinavigationcontroller,Swift2,Uinavigationbar,Ios9.2,我有一个UIViewController,它有一个导航栏。在运行时,我(在viewDidLoad上)添加一个UITable。我遇到的问题是UITableView y位置的行为不一致 在viewDidLoad中,我将UITableView框架设置为: tableView = UITableView(frame: self.view.frame) 然后: 问题是:在一些奇怪的情况下,仅在iphone 4s上,表格被添加到导航栏下面,导致用户看不到第一行(换句话说:y-pos=0) 如果我试图将y-

我有一个UIViewController,它有一个导航栏。在运行时,我(在viewDidLoad上)添加一个UITable。我遇到的问题是UITableView y位置的行为不一致

在viewDidLoad中,我将UITableView框架设置为:

tableView = UITableView(frame: self.view.frame)
然后:

问题是:在一些奇怪的情况下,仅在iphone 4s上,表格被添加到导航栏下面,导致用户看不到第一行(换句话说:y-pos=0)

如果我试图将y-pos设置为状态栏高度+导航栏高度,则桌子的位置总是太低(即位于错误的y-pos)

我是做错了什么,还是偶然发现了ios 9.2和swift 2的随机怪癖

希望这会有所帮助

在控制器的viewDidLoad方法中尝试以下操作:

self.automaticallyAdjustsScrollViewInsets = NO;
或者您可以从属性检查器中禁用它,如下图所示


Hmmm…当我这样做时,所有手机的导航栏会屏蔽/隐藏表格的第一行。看看这个答案,我的案例是第二个描述的案例(UITableView是第一个子视图),因此理论上,我的原始设置应该可以工作。然而,如上所述,在iPhone4S+iOS9.2上,它有时会失败(我有两台设备,一台工作,另一台不工作:()
self.automaticallyAdjustsScrollViewInsets = NO;