UIMenuController,UIPasteboard:复制,粘贴详解

首先用下面四张图,说明我要实现的功能。【讲一张图片复制到另外一个UIimageView上】

实现代码如下:

-(IBAction)panGestureTop:(UILongPressGestureRecognizer *)longPress
{

     UIMenuItem * itemPase = [[UIMenuItem alloc] initWithTitle:@"复制" action:@selector(copyimage)];
     UIMenuItem * itemTrans = [[UIMenuItem alloc] initWithTitle:@"转发" action:@selector(trans)];
     UIMenuItem * itemCollect = [[UIMenuItem alloc] initWithTitle:@"收藏" action:@selector(collect)];
     UIMenuItem * itemJoin = [[UIMenuItem alloc] initWithTitle:@"加入" action:@selector(join)];

    UIMenuController * menuController = [UIMenuController sharedMenuController];
    [menuController setMenuItems: @[itemPase,itemCollect,itemTrans,itemJoin]];

    CGPoint location = [longPress locationInView:[longPress view]];
    CGRect menuLocation = CGRectMake(location.x, location.y, 0, 0);
    [menuController setTargetRect:menuLocation inView:[longPress view]];
    menuController.arrowDirection = UIMenuControllerArrowDown;

    [menuController setMenuVisible:YES animated:YES];

}
-(BOOL)canBecomeFirstResponder
{
    return YES;
}

-(void)copyimage
{

    UIPasteboard * pasterBoard = [UIPasteboard pasteboardWithName:@"com.test.image" create:YES];
    pasterBoard.image = [self.topImgView image];

}
-(IBAction)panGestureBottom:(UILongPressGestureRecognizer *)longPress
{
    UIMenuItem * itemPase = [[UIMenuItem alloc] initWithTitle:@"粘贴" action:@selector(pase)];

    UIMenuController * menuController = [UIMenuController sharedMenuController];
    [menuController setMenuItems: @[itemPase]];

    CGPoint location = [longPress locationInView:[longPress view]];
    CGRect menuLocation = CGRectMake(location.x, location.y, 0, 0);
    [menuController setTargetRect:menuLocation inView:[longPress view]];
    menuController.arrowDirection = UIMenuControllerArrowDown;

    [menuController setMenuVisible:YES animated:YES];

}
-(void)pase
{
    UIPasteboard * pasterBoard = [UIPasteboard pasteboardWithName:@"com.test.image" create:NO];
    self.bottomImgView.image = pasterBoard.image;

}

当操作的时候,我们需要把当前的UIViewController变成第一响应者。

复制相当于copy了一份,加入我在复制过图片之后,粘贴图片之前,把原来的那个image删除掉,则依然可以进行粘贴。

UIMenuController,UIPasteboard:复制,粘贴详解,布布扣,bubuko.com

时间: 2024-10-11 04:11:27

UIMenuController,UIPasteboard:复制,粘贴详解的相关文章

Redis 复制过程详解

Redis 的复制功能分为同步( sync )和命令传播( command propagate )两个步骤: 同步用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态. 命令传播则用于在主服务器的数据库状态被修改,导致主从服务器的数据库状态出现不一致时,让主从服务器的数据库重新回到一致状态. 同步 Redis 使用 psync 命令完成主从数据同步,同步过程分为:全量复制和部分复制. 全量复制:一般用于初次复制场景,它会把主节点全部数据一次性发送给从节点发送给从节点,当数据量较大时,会对

UIMenuController,UIPasteboard:复制,粘贴详细解释

首先,这四个地图.我想实现的功能.[一张照片讲一个复制到另一UIimageView上] 实现代码例如以下: -(IBAction)panGestureTop:(UILongPressGestureRecognizer *)longPress { UIMenuItem * itemPase = [[UIMenuItem alloc] initWithTitle:@"复制" action:@selector(copyimage)]; UIMenuItem * itemTrans = [[U

MySQL的复制原理详解以及基础配置

MySQL 的日志类型 二进制日志,事务日志,错误日志,一般查询日志,中继日志,慢查询日志 二进制日志有以下内容 数据目录,一般放置在mysql-bin.XXXXX编号) 滚动:达到一个最大上限,flush logs,服务器重启 格式:statement row mixed mysql-bin.index:二进制日志文件索引文件 mysql > SHOW MASTER STATUS查看主服务器的状态 mysql > SHOW BINARY LOGS 查看二进制日志 mysql > SHO

oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了. 1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 注意:(1)要求目标表Table2必须存在,并且字段fie

Linux scp 远程复制命令详解

#常用范例 scp local_file [email protected]:/path/remote_file #常用参数 -r   Recursively copy entire directories.递归地复制整个目录(包括子目录及文件) -p   Preserves modification times, access times, and modes from the original file.备份模式(修改时间.访问时间及modes) -P   指定端口(不加默认使用-P 22)

monogdb复制原理详解

一.复制介绍 复制是在多台服务器之间同步数据的过程. 复制在为数据提供了冗余同时,也提高了数据的可用性.由于在不同的数据库服务器上拥有多个数据镜像,复制可以有效的防止由于单台服务器故障而导致的数据丢失.复制还能够帮助我们从硬件故障或是服务中断中恢复数据.我们也可以通过增加复制节点来将其用于灾难恢复.报表或是备份. 在某些情况中,我们可以通过复制的方式来提高读的性能.客户端可以将读与写请求分别发送到不同的服务器上.我们还能够通过在其他数据中心建立分布式复制节点的方式来做异地冗灾,以进一步提高可用性

<转>oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

我们经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 INSERT INTO SELECT 表复制语句了. 1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1 注意:(1)要求目标表Table2必须存在,并且字段fie

mongodb replica sets复制集详解

一.replica sets介绍 一个复制集是一组包含相同数据集的mongod实例.一个复制集只能有一个是primary节点,其它的节点为secondary节点. 和主从复制的原理一样,复制集也是通过读取oplog来进行数据传输.oplog是一个capped collection即固定表,创建表的时候可以指定其大小,当oplog满的时候会删除旧的数据.所以设置oplog的大小非常重要,如果oplog在primary节点被覆盖而尚未被secondary节点读取的话就要重新resync. 一般的使用

C++ 复制构造函数详解(转载)

转自:http://blog.csdn.net/lwbeyond/article/details/6202256 一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: [c-sharp] view plaincopy int a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面看一个类对象拷贝的简单例子. [c-sharp] view plaincopy #include <iostream> us