gpt4 book ai didi

ios - 粘性 UICollectionView header F#

转载 作者:行者123 更新时间:2023-11-29 11:37:29 27 4
gpt4 key购买 nike

我有一个 UICollectionViewController具有以下布局:

enter image description here

所以我们有一个 CollectionView 和一个包含 Reusable View 的 Header。

我为可重用 View 实现了以下方法:

override x.GetViewForSupplementaryElement(collectionView : UICollectionView, elementKind : NSString, indexPath : NSIndexPath) =
let headerView = (collectionView.DequeueReusableSupplementaryView(elementKind,new NSString("HeaderView"),indexPath))
headerView

我唯一的问题是,我不希望页眉与 UICollectionView 一起滚动,我希望它始终保持在 UICollectionView 顶部的固定位置.我怎样才能做到这一点?

最佳答案

这可以使用以下代码完成:

let layout = x.CollectionView.CollectionViewLayout :?> UICollectionViewFlowLayout
layout.SectionHeadersPinToVisibleBounds <- true

改编自UICollectionView sticky header in swift

为了消除 collectionView 顶部的空白区域,请执行以下操作:

x.AutomaticallyAdjustsScrollViewInsets <- false
x.CollectionView.ContentInset <- UIEdgeInsets(Conversions.nfloat(-44),Conversions.nfloat(0), Conversions.nfloat(0), Conversions.nfloat(0))

请注意,-44 的值专门用于 iPhone X,其他型号可能有所不同。

Conversions 用于转换为nfloat。这是执行此转换的代码:

let inline nfloat (x:^a) : ^b = ((^a or ^b) : (static member op_Implicit : ^a -> nfloat) x)

最后,如果您希望消除 UICollectionView 顶部的垂直弹跳,请将以下代码添加到您的 UICollectionViewController 中:

override x.Scrolled(scrollView : UIScrollView) = 
if (scrollView.ContentOffset.Y < Conversions.nfloat(0)) then
scrollView.ContentOffset <- CGPoint(scrollView.ContentOffset.X, Conversions.nfloat(0))

关于ios - 粘性 UICollectionView header F#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48342443/

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