2
私は、スクロール時にアニメーションを実行するcollectionviewを持っています。しかし、このアニメーションが進行している間、私はスクロールを止めるために画面に触れることができません。私はスクロールが完全に停止するのを待たなければなりません。CollectionViewに触れたときにアニメーションを無効にしますか?
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
let cellsAcross: CGFloat = 1
let spaceBetweenCells: CGFloat = 1
let dim = (collectionView.bounds.width - (cellsAcross - 1) * spaceBetweenCells)/cellsAcross
let finalCellFrame = cell.frame
//check the scrolling direction to verify from which side of the screen the cell should come.
let translation = collectionView.panGestureRecognizer.translation(in: collectionView.superview!)
if translation.x > 0 {
cell.frame = CGRect(x: CGFloat(4), y: CGFloat(finalCellFrame.origin.y), width: CGFloat(dim), height: CGFloat(44))
} else {
cell.frame = CGRect(x: CGFloat(4), y: CGFloat(finalCellFrame.origin.y), width: CGFloat(dim), height: CGFloat(44))
}
UIView.animate(withDuration: 0.25, delay: 0.4, animations: {(_: Void) -> Void in
cell.frame = finalCellFrame
})
}
アニメーションを削除すると、いつでも指が画面に触れるときにスクロールを中断することができます。アニメーションを維持しながらスクロールを中断するにはどうすればよいですか?
ああ!そのような簡単な解決策!それはトリックはあなたに感謝しました! – user4938361