【问题标题】:how to prevent imageView from extending under navigationBar in ContainerView如何防止 imageView 在容器视图的导航栏下扩展
【发布时间】:2017-05-06 03:52:42
【问题描述】:

请帮助解决这个问题。 我有一个带有两个容器视图的视图控制器,每个视图都指向一个单独的视图控制器。

第一个视图控制器应该显示图像,但顶部被导航栏截断。

我已取消选中“在顶部边缘下延伸”。

两个容器视图的视图控制器几乎是空的。

有什么想法吗?

class ViewController: UIViewController {

var teamMember:TeamMember!

override func viewDidLoad() {
    super.viewDidLoad()

    if let name = teamMember.firstName {
        title = name
    }
    navigationController?.view.setNeedsLayout()
}


override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "PictureViewController") {
        var destination = segue.destination as? UINavigationController
        var vc = destination?.topViewController as? PictureViewController
        vc?.teamMember = teamMember
    }

    if (segue.identifier == "BioContentViewController") {
        var vc = segue.destination as? BioContentViewController
        vc?.teamMember = teamMember
    }
}

编辑:我也在设置自定义导航栏项目,我不知道这是否会导致问题

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "PictureViewController") {

        let backItem = UIBarButtonItem()
        backItem.title = "Meet The Team"
        navigationItem.backBarButtonItem = backItem
    }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "teamMemberDetailView") {

        let backItem = UIBarButtonItem()
        backItem.title = "Meet The Team"
        navigationItem.backBarButtonItem = backItem

        var vc = segue.destination as? TeamMemberDetailViewController
        vc?.teamMember = teamArray[selectedTeamMemberIndex]
    }
}

【问题讨论】:

  • 您对UIImageView 使用了哪些约束?它是否与topLayoutGuide 绑定?
  • viewDidAppear 中,您能否打印缺失视图的帧。这将有助于调试问题
  • @ScottThompson 没有限制..
  • @ScottThompson 好的,我添加了约束:UIimageView 到顶部布局指南,大小 = 0.. 但没有区别
  • 我得到它半工作的一种方法是将顶部空间设置为顶部布局指南 = 100

标签: ios swift uicontainerview


【解决方案1】:

将 imageView 绑定到顶部布局指南。

如果你想让你的图片出现在导航栏上,你可以将它添加到 UIWindow。

【讨论】:

【解决方案2】:

尝试将视图控制器的 automaticallyAdjustScrollViewInset 设置为 false

我认为blog 将帮助您使用容器视图控制器。

【讨论】:

    猜你喜欢
    • 2020-06-02
    • 1970-01-01
    • 2016-04-30
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    相关资源
    最近更新 更多