我的应用程序内部有一个导航控制器和一个集合视图。 有一个问题:我在导航栏中使用大标题,因此其中的 所有内容都不是静态的。当我滚动集合视图单元格时, 标题(我在 导航栏中随意移动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) }
但它仅适用于大标题。那么,如何使导航栏 更大?
是的,您可以将其修复。如果 视图层次结构中的第一个视图不是,则不会滚动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