Dav*_*ees 8 uinavigationbar uinavigationcontroller ios swift
在iOS的11搜索栏现在将改变导航栏高度56dp添加一个搜索栏的时候navigationItem.titleView
我喜欢高度变化,并不打算强迫高度保持在44dp或更低.
不幸的是,当从一个视图控制器转换到另一个视图控制器时,将使用较大的导航栏绘制推出的视图,然后在转换完成后更改条形高度.看起来有点像这样:
我需要一种方法让导航控制器识别过渡期间的高度变化,以便它可以设置较小的动画并正确绘制视图.
我有一个我不喜欢的当前修复,因为它有点跳跃,这是应用程序必须做的更多工作,并且它必须重新评估它的视图,无论它被推出哪个视图控制器.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if #available(iOS 11, *) {
navigationController?.view.layoutSubviews()
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我还没有发现任何关于堆栈溢出的类似问题,来自WWDC的任何评论以及官方苹果文档中的任何内容.我见过很多应用程序处理这个问题.苹果联系人应用程序将创建看起来像两个导航栏,并将在它们之间移动而不动画高度变化和fb messenger应用程序将完美地在高度之间转换,甚至允许交互式弹出过渡.
小智 3
使用这个,它将保持搜索栏的高度固定
if #available(iOS 11.0, *) {
searchBar.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
531 次 |
| 最近记录: |