gpt4 book ai didi

ios - 添加导航栏时缩小 Collection View

转载 作者:行者123 更新时间:2023-11-28 15:17:01 27 4
gpt4 key购买 nike

在我的 iOS swift 应用程序中,我使用自定义 UICollectionViewLayout 创建了 UIColletctionViewController,它创建了可水平滚动的父子网格布局。此布局的高度经过计算,因此适合我的屏幕高度。

override var collectionViewContentSize: CGSize {
return CGSize(
width: someWidth,
height: collectionView?.frame.height ?? 0
)
}

当我在导航栏中嵌入我的 Collection View Controller 时,整个 Collection View 被向下移动,但 collectionView?.frame.height 保持不变,所以我的内容向下溢出。

enter image description here

如何在没有导航栏的情况下获得这个减少的可用空间的高度?

最佳答案

如果您的 View Controller 将 edgesForExtendedLayout 设置为 .all.top 并且 automaticallyAdjustsScrollViewInsets = true(看起来就像这种情况)然后你的 collectionView 的 contentInset 被调整以补偿导航栏的高度,所以检查那个插图。

假设您的 collectionView 延伸到顶部(从导航栏后面开始)获得可见高度:

let visibleHeight = collectionView.frame.height - collectionView.contentInset.top

在你的情况下你可以这样做:

override var collectionViewContentSize: CGSize {
return CGSize(
width: someWidth,
height: collectionView.frame.height - collectionView.contentInset.top
)
}

另一种选择是设置 edgesForExtendedLayout = UIRectEdge(rawValue: UInt(0)) 然后你的 View Controller 的 View 将不会扩展到任何边缘,并且会在导航栏下方开始,因此你的 Collection View 的框架将在可见范围内,您可以像示例中那样使用 collectionViewContentSize

关于ios - 添加导航栏时缩小 Collection View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46670945/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com