我有一個以編程方式構建的 UICollectionView,它不允許我滾動到其中的最后一項。

這是我的設定方式
private let collectionView: UICollectionView = UICollectionView(
frame: .zero,
collectionViewLayout: UICollectionViewCompositionalLayout { sectionIndex, _ -> NSCollectionLayoutSection? in
return WorkoutListViewController.createSectionLayout(section: sectionIndex)
})
private static func createSectionLayout(section: Int) -> NSCollectionLayoutSection {
// item
let item = NSCollectionLayoutItem(
layoutSize: NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1.0),
heightDimension: .fractionalHeight(1.0)
)
)
item.contentInsets = NSDirectionalEdgeInsets(top: 14, leading: 0, bottom: 14, trailing: 0)
// group
let verticalGroup = NSCollectionLayoutGroup.vertical(
layoutSize: NSCollectionLayoutSize(
widthDimension: .fractionalWidth(1.0),
heightDimension: .absolute(123)
),
repeatingSubitem: item,
count: 1
)
// section
let section = NSCollectionLayoutSection(group: verticalGroup)
return section
}
private func configureCollectionView() {
view.addSubview(collectionView)
collectionView.register(
WorkoutListCollectionViewCell.self,
forCellWithReuseIdentifier: WorkoutListCollectionViewCell.identifier
)
collectionView.delegate = self
collectionView.dataSource = self
collectionView.backgroundColor = .systemBackground
}
我嘗試通過給它一個非常大的數字(例如 2000)來修改高度,但沒有任何改變。我也嘗試添加UICollectionViewDelegateFlowLayout協議來添加
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
}
函式并回傳CGSize我的專案。
uj5u.com熱心網友回復:
看起來你的集合視圖隱藏在 TabBar 后面,所以嘗試根據底部 TabBar 高度設定你的集合視圖的 ContentInset。
例子:
collectionView.contentInset = .init(top: 0.0, left: 0.0, bottom: bottomHeight, right: 0.0)
希望這可以幫助!
uj5u.com熱心網友回復:
主要問題是您沒有為集合視圖的底部設定約束。
嘗試獲取集合視圖的邊框并查看集合視圖的結束位置。
集合視圖底部的約束應該是底部欄的頂部......
盡管以上 Natarajan 的回答有效,但這不是問題的主要原因。那只是避免實際問題的解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/533784.html
上一篇:如何從NETMAUI中的CollectionViewiOS16和Android33中的圖庫中獲取影像?
下一篇:NSUrl拋出例外
