gpt4 book ai didi

ios - 如何使用 viewForSupplementaryElementOfKind 显示 UICollectionView 的特定单元格 - swift

转载 作者:行者123 更新时间:2023-11-28 05:57:02 26 4
gpt4 key购买 nike

我是iOS编程新手。现在我正在开发一个显示类似于应用程序商店的应用程序。但是我有一些问题,当用户打开应用程序时,我希望数据单元格应该显示第二个单元格。例如,我有三个单元格,然后当用户打开应用程序时,第二个单元格应自动滚动到该位置。

这是我创建标题部分的方式:(以编程方式)

/// banner section
override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
let header = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: headerCellId, for: indexPath) as! HeaderBanner

header.sectionCategory = dashbordCell?[indexPath.item]

return header
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, referenceSizeForHeaderInSection section: Int) -> CGSize {
let size = CGSize(width: view.frame.width, height: 370)
return size
}

这是我创建的 HeaderBanner

let dataBannerCollectionView: UICollectionView = {

var scrollInterval: Int = 3
let flowLayout = UICollectionViewFlowLayout()
flowLayout.scrollDirection = .horizontal
let collectionView = UICollectionView(frame: .zero,collectionViewLayout: flowLayout)
collectionView.backgroundColor = UIColor.clear
collectionView.translatesAutoresizingMaskIntoConstraints = false
return collectionView

}()

func setupViewsCell(){
dataBannerCollectionView.showsHorizontalScrollIndicator = false


dataBannerCollectionView.dataSource = self
dataBannerCollectionView.delegate = self

dataBannerCollectionView.register(HeaderBannerDataCell.self, forCellWithReuseIdentifier: headerCellId)

addSubview(dataBannerCollectionView)
setupConstraintDataBannerCollectionView()



}

这是 HeaderBanner 文件的行为。

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
if let count = sectionCategory?.dataBanner?.count {

return count
}
return 0
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: headerCellId, for: indexPath) as! HeaderBannerDataCell
cell.dataBannerCell = sectionCategory?.dataBanner![indexPath.item]

return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
print(frame.width)
let size = CGSize(width: frame.width - 100 , height: 350)
return size
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print("Banner selected")
}

如您所见,标题部分显示图像的第一个单元格。当用户打开应用程序时,我只是我的应用程序看起来像这样。

这是我的示例应用程序的输出:

这是我的期望,我想显示所有单元格的中间单元格。

最佳答案

可以使用UICollectionView的scrollToItem函数:

例如,如果您有三个单元格:

        dataBannerCollectionView.scrollToItem(at: IndexPath(item: 2, section: 0), at: UICollectionViewScrollPosition.centeredHorizontally, animated: false)

在 setupViewsCell() 函数中添加该代码

关于ios - 如何使用 viewForSupplementaryElementOfKind 显示 UICollectionView 的特定单元格 - swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51186138/

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