我的应用程序下有一个导航控制器和一个集合视图。有一个问题:我在导航栏中使用大标题,因此里面的所有内容都不是静态的。当我滚动集合视图单元格时,标题(我使用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)
}
,但仅适用于大标题。那么如何使导航栏更大?
答案 0 :(得分:3)
是的,您可以将其修复。如果视图层次结构中的第一个视图不是CollectionView/TableView (ScrollView)
,它将不会滚动。
请考虑以下图像,其中在tableView
中添加了button
和scene
。这里的navigation bar
将在tableView
的滚动上折叠,因为tableView
是viewController
的{{1}}层次结构中附加到导航栏的第一张视图。>
现在要固定导航栏,如果我们仅按以下方式更改containerView
和tableView
的顺序,它将禁用button
的折叠。
要更改navigation bar
的顺序,必须单击,按住并向上/向下移动。
如果此场景中只有view
,则可以在顶部添加占位符CollectionView
,并将其view
设置为height
,如下所示,