iOS11から、新しくドラッグ&ドロップまわりのメソッドが追加されました。
以下の記事がとても参考になるので、ぜひご一読ください。
collection viewとtable viewにおけるDrag & Drop[WWDC 2017]
ドラッグ時のプレビューをカスタマイズする方法
本題ですが、、
UICollectionViewのドラッグ中のプレビュー画像のカスタマイズに関する記事があまりなかったので投稿させていただきます。
ドラッグ中は、デフォルトではドラッグ中のアイテムのcellがプレビューに使われます。cellの一部分だけを使うなどカスタマイズしたいときは以下のメソッドを使います。
func collectionView(_ collectionView: UICollectionView, dragPreviewParametersForItemAt indexPath: IndexPath) -> UIDragPreviewParameters? {
let previewParameters = UIDragPreviewParameters()
//ドラッグ中のViewの背景を透明にする
previewParameters.backgroundColor = UIColor.clear
return previewParameters
}
他にも、プレビューを円で表示したいとかのときは以下のようにすれば、実現が可能です。
func collectionView(_ collectionView: UICollectionView, dragPreviewParametersForItemAt indexPath: IndexPath) -> UIDragPreviewParameters? {
let previewParameters = UIDragPreviewParameters()
let path = UIBezierPath.init(ovalIn: CGRect.init(x: 0, y: 0, width: 100, height: 100))
previewParameters.visiblePath = path
return previewParameters
}
今、ちょっと個人的に困っているのは、切り抜いたプレビューに影がついてしまうのですが、影をなくしたく、、、でも方法が見当たっていません。どなたか知っている人いれば、情報いただけますと幸いです。