Ego*_*kov 4 uinavigationcontroller ios swift
我的应用程序内部有一个导航控制器和一个集合视图。有一个问题:我在导航栏中使用大标题,因此里面的所有内容都不是静态的。当我滚动集合视图单元格时,标题(我手动创建了该标题,并使用UILabel()它在导航栏中随意移动它)和按钮向上移动,导航栏采用iOS 10导航栏的形式,即其高度。你可以在这里看到它:
我的导航栏带有“首选大标题”的正常状态开:

当我滚动“收藏夹视图”时,一切都会发生:

所以问题很简单:如何使导航条的力保持恒定的高度?我希望它即使在滚动时也能固定。有什么想法吗?可能吗?
第二个问题,如果第一个是不可能的:我的问题的另一种解决方案是使“优先选择大标题”的导航栏更大。我尝试了这段代码:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let height: CGFloat = 50 //whatever height you want to add to the existing height
let bounds = self.navigationController!.navigationBar.bounds
self.navigationController?.navigationBar.frame = CGRect(x: 0, y: 0, width: bounds.width, height: bounds.height + height)
}
Run Code Online (Sandbox Code Playgroud)
但它仅适用于大标题。那么如何使导航栏更大?
是的,您可以将其修复。如果视图层次结构中的第一个视图不是,则不会滚动CollectionView/TableView (ScrollView)。
使用情节提要/ Xib:
考虑下面的图像,其中在tableView和button中添加了和scene。此处的navigation bar滚动会折叠,tableView因为的层次结构tableView中viewController的第一个视图是containerView附加到导航栏的。
现在,让导航栏固定的,如果我们只是改变的顺序tableView和button下面,将禁用的崩溃navigation bar。
要更改的顺序view,您必须单击,按住并向上/向下移动。
如果只有CollectionView此场景,则可以view在顶部添加一个占位符,并将其height设置zero为如下所示,
以编程方式:
如果要以编程方式设置视图,则只需要在顶部添加一个占位符视图,或者tableView/collection在添加其他视图之后添加即可。
例如,
self.view.addSubview(UIView(frame: .zero))
self.view.addSubview(tableView) // or collectionView
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1361 次 |
| 最近记录: |