美文网首页
Swift-使用长按手势移动cell

Swift-使用长按手势移动cell

作者: GloryMan | 来源:发表于2018-01-09 15:45 被阅读417次

title: Swift-使用长按收拾来移动cell
categories:

  • Code
  • iOS
    date: 2016-06-29 10:43:19
    tags:
  • UITableViewCell

最近在项目中需要对cell 进行移动排序,所以搜集了很多资料研究一下,下面是具体的代码细节

大概逻辑

为tableViewCell 添加长按收拾

    let longPress = UILongPressGestureRecognizer(target: self, action:#selector(ViewController.longPressGestureRecognized(_:)))
    self.tableView.addGestureRecognizer(longPress)

利用手势自带的 state

    public enum UIGestureRecognizerState : Int {

      case Possible
      case Began 
      case Changed 
       case Ended 
       case Cancelle
      case Failed
    }

长按cell 获取cell 的快照

    func customSnapshotFromView(inputView:UIView) -     >UIView {
        
        UIGraphicsBeginImageContextWithOptions(inputView.bounds.size, false, 0)
        inputView.layer.renderInContext(UIGraphicsGetCurrentContext()!)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        
        let snapshot = UIImageView(image: image)
        snapshot.layer.masksToBounds = false
        snapshot.layer.cornerRadius = 0.0
        snapshot.layer.shadowOffset = CGSizeMake(-5.0, 0.0)
        snapshot.layer.shadowOpacity = 0.4
        return snapshot
    }

在移动的时候处理数据源

extension ViewController : UITableViewDelegate {
    
    func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle {
        return .Delete
    }
    
    func tableView(tableView: UITableView, canMoveRowAtIndexPath indexPath: NSIndexPath) -> Bool {
        return true
    }
    
    func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
        self.titleList.removeObjectAtIndex(indexPath.row)
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)
    }
      
    }

完成代码编写 运行查看效果

原文地址

Code Swift:原文地址 - swift 版本

完整项目地址

Code Swift:项目源码 - swift 版本

更多内容

code : info more

相关文章

网友评论

      本文标题:Swift-使用长按手势移动cell

      本文链接:https://www.haomeiwen.com/subject/zyfgnxtx.html