iOS 长按TableViewCell加长按快捷菜单

tableviewcell 长按出现的快捷菜单这个功能估计大家在项目中用到的比较少

首先我们来看一下效果图,长按cell4后出现效果。

实现这个功能只需要动用三个方法,都是tableview本身有的

第一个方法

-(BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath *)indexPath

{//允许Menu菜单出现

    return   YES;

}

 

第二个方法

-(BOOL)tableView:(UITableView *)tableView canPerformAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender

{   

     return YES;  // 表示全部的cell都可以显示menu菜单

   //显示 cut,copy,paste

   if (action == @selector(cut:)){   

          return YES;  

     }  else if(action == @selector(copy:)){      

         return YES;    

     } else if(action == @selector(paste:)){   

         return YES;    

     } else if(action == @selector(select:)){     

       return NO;    

     } else if(action == @selector(selectAll:)){      

       return NO;    

   }  else  {     

       return [super canPerformAction:action withSender:sender];    

  }

}

 

第三个方法

-(void)tableView:(UITableView *)tableView performAction:(SEL)action forRowAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender{

 if (action == @selector(copy:)) {

        [UIPasteboard generalPasteboard].string = [DataArray objectAtIndex:indexPath.row];

    }else if (action == @selector(cut:)){

        [UIPasteboard generalPasteboard].string = [DataArray objectAtIndex:indexPath.row];

        [DataArray replaceObjectAtIndex:indexPath.row withObject:@"已剪切"];//被剪切的一行所用的字符串来代替,可以为空串,不能为nil

        [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];

    }else if (action == @selector(paste:)){

        NSString *pasteString = [UIPasteboard generalPasteboard].string;

        NSString *temString = [NSString stringWithFormat:@"%@%@",[DataArray objectAtIndex:indexPath.row],pasteString];

        [DataArray replaceObjectAtIndex:indexPath.row withObject:temString];

        [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];

    }

}

三个方法就可以实现上述功能了,动手试试吧!

 

转载于:https://www.cnblogs.com/billy-chou/p/3941867.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值