LoginSignup
4
5

More than 5 years have passed since last update.

【swift4】UICollectionViewのドラッグ時のプレビューをカスタマイズする

Posted at

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
    }

今、ちょっと個人的に困っているのは、切り抜いたプレビューに影がついてしまうのですが、影をなくしたく、、、でも方法が見当たっていません。どなたか知っている人いれば、情報いただけますと幸いです。

4
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5