【问题标题】:Adding a UITableView at run time to a UIViewController that has a NavigationBar - y position issue在运行时将 UITableView 添加到具有 NavigationBar - y 位置问题的 UIViewController
【发布时间】:2015-12-23 17:48:14
【问题描述】:

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

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

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

然后:

self.view.addSubview(tableView)

问题:在奇怪的情况下,并且仅在 iphone 4s 上,表格被添加到 NavigationBar 下方导致第一行对用户不可见(换句话说:y-pos = 0)。

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

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

【问题讨论】:

    标签: uitableview uinavigationcontroller swift2 uinavigationbar ios9.2


    【解决方案1】:

    希望对你有帮助

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

    self.automaticallyAdjustsScrollViewInsets = NO;
    

    或者您可以从属性检查器中禁用它,如下图所示。

    【讨论】:

    • 嗯......当我这样做时,在所有手机上,表格的第一行被导航栏屏蔽/隐藏。看看这个答案stackoverflow.com/a/19129292/1176660,我的情况是描述的第二个(UITableView 是第一个子视图),所以理论上,我的原始设置应该可以工作。但是,如前所述,在 iphone 4s + ios 9.2 上它有时会失败(我有两台设备 - 一台可以正常工作,而另一台则不能:()
    猜你喜欢
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多