我的qustion很简单。我搜索了很多,我熟悉UICollectionView,但从未见过UICollectionView的这种行为。请不要快速回答,请阅读我的所有问题。 我正在开发一个使用collectionView(和自动布局)的项目。我的collectionView启用了分页,工作正常。但是当我滚动太快时(我的意思是太快)它会滚动两页并显示下一行(前一行)的内容。还有这段代码:
decelerationRate = UIScrollViewDecelerationRateFast
没有工作。 我创建了一个临时项目,它有1个控制器和一个简单的collectionView(启用了分页,单元格的大小与viewController大小相同)。并且单元格中只有一个标签。标签号与collectionView行相同。还设置了这个:
decelerationRate = UIScrollViewDecelerationRateFast
当我从1快速滚动到2时,它在3上停止,反之亦然。 这是我的临时项目代码(即自动布局):
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let collectionViewLayout = UICollectionViewFlowLayout()
collectionViewLayout.sectionInset = UIEdgeInsets.zero
collectionViewLayout.minimumLineSpacing = 0
collectionViewLayout.minimumInteritemSpacing = 0
collectionViewLayout.scrollDirection = UICollectionViewScrollDirection.horizontal
self.collView.collectionViewLayout = collectionViewLayout
self.collView.decelerationRate = UIScrollViewDecelerationRateFast
}
func numberOfSections(in collectionView: UICollectionView) -> Int
{
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
return 10
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! CollCell
print("cell For Item At Row \(indexPath.row)")
cell.lblNumber.text = "\(indexPath.row)"
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
{
return CGSize(width: collectionView.frame.size.width, height: collectionView.frame.size.height)
}
谁知道我该怎么办?这是UICollectionView的正常行为吗?