集合视图单元格快速滚动到中心时出现问题
Posted
技术标签:
【中文标题】集合视图单元格快速滚动到中心时出现问题【英文标题】:Issue while collection view cell scroll to center in swift 【发布时间】:2019-11-04 06:14:06 【问题描述】:我的 VC 中有一个集合视图,我水平滚动集合视图,我想将每个单元格水平滚动居中,我尝试了一个代码,但是当它滚动时它显示下一个单元格比第二个更左。这是我的代码,
fileprivate let sectionInsets = UIEdgeInsets(top: 0, left: 15, bottom: 0, right: 15)
gridView.delegate = self
gridView.dataSource = self
gridView.register(ItemCollectionViewCell.self, forCellWithReuseIdentifier: "ItemCollectionViewCell")
gridView.register(UINib(nibName: "ItemCollectionViewCell", bundle: nil), forCellWithReuseIdentifier: "ItemCollectionViewCell")
gridView.showsHorizontalScrollIndicator = true
gridView.bounces = true
gridView.showsHorizontalScrollIndicator = false
gridView.showsVerticalScrollIndicator = false
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
return auctions?.properties?.count ?? 0
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
let cell:ItemCollectionViewCell = collectionView.dequeueReusableCell(withReuseIdentifier: "ItemCollectionViewCell", for: indexPath) as! ItemCollectionViewCell;
cell.propertyData = (auctions?.properties![indexPath.row])!
if auctions?.status == AuctionStatus.Live.rawValue
cell.noOfBidsPlaced.isHidden = false
else
cell.noOfBidsPlaced.isHidden = true
cell.populateCell()
return cell
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize
let size = CGSize(width: 335 , height: 337)
return size
//3
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
insetForSectionAt section: Int) -> UIEdgeInsets
return sectionInsets
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
return sectionInsets.left
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
minimumLineSpacingForSectionAt section: Int) -> CGFloat
return sectionInsets.left
如何滚动每个单元格以完美居中? 这是它在开始时显示我的收藏的方式,
这就是它在滚动上显示的内容,它是从左侧剪切的
【问题讨论】:
检查这个答案。 ***.com/questions/54672069/… 我已经尝试了你给定的链接,当我滚动单元格时出现了一个问题。当我滚动屏幕左侧的每个单元格时,它不会显示完全居中,我在我的问题中附加了屏幕,请检查一下。 @克里斯 需要添加分页启用 true 并动态设置单元格宽度 不要使用sectionInsets,用左右间距调整.xib中的图像视图。然后使用集合视图宽度作为单元格宽度 不,兄弟,它不起作用,我已经设置了故事板的前导和尾随集合视图,并且也使用了您的功能,但它仍然在左滚动上剪切视图。 @SidharthKhanna 【参考方案1】:不要使用静态高度和宽度。 调用这个函数。也许它对你有帮助:-
// func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize // return CGSize(width: yourCollectionView.frame.size.width, height: yourCollectionView.frame.size.height ) //
【讨论】:
是的,它居中,但我希望单元格之间的间距与屏幕截图中的相同。 @Gurpreet Singh 删除所有 sectionInsets 代码。我相信您还可以看到您的收藏视图位于中心,而另一个未显示。@Hamza以上是关于集合视图单元格快速滚动到中心时出现问题的主要内容,如果未能解决你的问题,请参考以下文章