【问题标题】:iOS Drag & Drop. How to replace a cell with a custom view while draggingiOS 拖放。如何在拖动时用自定义视图替换单元格
【发布时间】:2020-05-07 05:40:15
【问题描述】:

是否可以将一个元素从可拖动的 UITableViewCell 完全替换为自定义 UIView?

比如我拖了一个单元格,想在点击单元格的时候显示一个圆圈,在拖拽的过程中,直到松开,在元素上显示元素是否可以下移到结束位置。

我使用了 UITableViewDragDelegate 和 UIDropInteraction,但找不到单元格替换,只能使用 UIBezierPath 从单元格中获取部分以剪切部分单元格。

【问题讨论】:

    标签: ios objective-c swift uitableview drag-and-drop


    【解决方案1】:

    你可以通过实现这个委托方法来实现

    func tableView(_ tableView: UITableView,
       itemsForBeginning session: UIDragSession,
       at indexPath: IndexPath) -> [UIDragItem] {
           let provider = NSItemProvider()
               let item = UIDragItem(itemProvider: provider)
               
               // remove this code to drag whole cell
               ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
               item.previewProvider  = { () -> UIDragPreview? in
                  let previewImageView = UIView()
                  previewImageView.frame =  CGRect(x: 0,y: 0,width: 50,height: 50)
                 previewImageView.layer.cornerRadius = previewImageView.bounds.maxX / 2
                  return UIDragPreview(view: previewImageView)
               }
               /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
              
                  
                  
               return [item]
       }
    

    你会得到这个效果

    【讨论】:

      猜你喜欢
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多