【发布时间】:2017-10-23 21:51:18
【问题描述】:
我正在实现一些 UICollectionViewCell 类来填充嵌入在 NavigationController 中的普通 UICollectionView。
在这个单元格类中,我需要获取将呈现这个单元格的 collectionView 的 navigationController 的 NavigationBar 高度。
我的问题是,我需要在单元创建过程中预先获取这些数据,而不是之后。
如果是在我简单地将单元格投射到 cellForItemAt 内并在那里填充一些属性之后,但我需要预先设置。
解决这个问题的最佳方法是什么?
这将与常规 tableViewCell 相同 您将如何访问单元格类中的 NavigationController.navigationBar 高度?
我知道高度大多是 44,但我不想强制使用此值,因为它可能会因设备而异,并且如果我访问该属性,该值将始终正确且无错误。
这不是navigationController.navigationBar.frame.height 的常规调用,因为在单元类内部没有navigationController
感谢您的帮助。
【问题讨论】:
-
这不应设置为重复,因为上下文不同
-
除非 Apple 在未来的 iOS 版本中更改某些内容,否则导航栏高度始终为
44,无论设备如何。现在,我了解您希望代码干净并以编程方式访问值的愿望,但这似乎有点矫枉过正。还有cells creation process是什么意思?有很多步骤,你的意思是什么? -
好吧,基本上我有我的常规 UICollectionViewCell 类,对吧?然后在里面我有一些属性和对象,其中一些我以编程方式锚定,因为在这个特定的单元格中我正在创建一个标题单元格,我需要获得正确的大小,以便之后在 UICollectionView 控制器中正确地进行动画处理本身。太好了,你了解我的 POV ;)
-
如果您只想在
UICollectionView中创建一个标题,那么这可能会对您有所帮助。 appcoda.com/supplementary-view-uicollectionview-flow-layout
标签: ios swift3 uinavigationbar uicollectionviewcell