导航工具栏从全屏视频返回后垂直延伸
第一个屏幕截图是在全屏播放视频之前拍摄的。
第二个是在全屏打开并关闭视频后拍摄的。
任何想法为什么导航工具栏扩展?
注意:汉堡包按钮不是导航项目的一部分。 它被伪装成覆盖在父容器中,将其子控制器保存在标准容器内。
源内没有特别的东西:
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