导航工具栏从全屏视频返回后垂直延伸

第一个屏幕截图是在全屏播放视频之前拍摄的。

之前

第二个是在全屏打开并关闭视频后拍摄的。

在这里输入图像描述

任何想法为什么导航工具栏扩展?

注意:汉堡包按钮不是导航项目的一部分。 它被伪装成覆盖在父容器中,将其子控制器保存在标准容器内。

源内没有特别的东西:

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    bbiListic = UIBarButtonItem(image: UIImage(identifier: .IcoHeaderListic), style: .Plain, target: self, action: #selector(UIViewController.showListic))
    bbiFavorite = UIBarButtonItem(image: UIImage(identifier: .IcoHeaderStarEmpty), style: .Plain, target: self, action: #selector(LiveDogadjajViewController.toggleFavorite(_:)))

    ... 
    let items = [bbiListic!,bbiFavorite!]

    navigationItem.rightBarButtonItems = items
}

func someRefresh() {
    var items = [UIBarButtonItem]()

    items.append(bbiListic!)
    ...
    navigationItem.rightBarButtonItems = items
}

更新:

这似乎只是在最新版本的iOS 9.3上才有问题


从你的屏幕截图看,状态栏的高度看起来就增加了一倍。 尝试这个:-

在播放视频之前,请隐藏状态栏

UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: .None)

结束视频后,显示状态栏

UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: .None)

先决条件:

a)通过从main.storyboard中选择您的uiviewcontroller来取消选中“扩展边缘”

b)您的视频播放器和容器控制器之间不存在限制

解:

检查导航栏上的任何按钮是否受限制。 请移除该约束或将固定高度约束应用到自定义导航栏视图,以使其保持相同高度。


我联系了Apple开发者关于这个问题的技术支持。 他们确定这可能是iOS 9.3中的一个错误

Bug ID:26439832,iOS SDK

对于堆栈中的视图控制器,这是一个简单的解决方法:

// ... add this to init method
let nc = NSNotificationCenter.defaultCenter()
nc.addObserver(self, selector: #selector(didExitFullscreen(_:)), name: MPMoviePlayerDidExitFullscreenNotification, object: nil)

func didExitFullscreen(notification: NSNotification)
{

     // hack, fix for 9.3. 
     if #available(iOS 9.3, *)
     {
         navigationController?.setNavigationBarHidden(true, animated: false)
         navigationController?.setNavigationBarHidden(false, animated: false)
     }
}
链接地址: http://www.djcxy.com/p/91819.html

上一篇: Navigation toolbar extends vertically after returned from full screen video

下一篇: Tablayout with Custom view Broken on 23.4.0 design lib