在uiview之间拖动复制



我实际上是在尝试做这个问题所涵盖的内容,但是复制而不是移动。

下面是视图层次结构的样子(从现有的问题中复制)。AB都在同一个父视图中。 X 一个视图在

  A        B
_____    _____
|   |    |   |
| X | -> |   |
|___|    |___|
<<p>我想拷贝strong> X 到 B 是可用项的列表。我想从A中选择一个项目,并将其副本添加到B

这是我到目前为止所想到的。在X中检测到触摸后,我复制视图(viewCopy)。然后我将viewCopy添加到A中,并将原始视图添加到AB的父视图中。这是因为触摸可能在原始视图上是活动的而不是在复制的视图上。我希望新的(复制的)视图响应拖动,以便从 a B平滑过渡。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{        
    id viewCopy = [self mutableCopy];
    [self.superview.superview addSubview:self];
    [self.superview addSubview:viewCopy];
    [viewCopy release];
}

这显然不起作用。这是一个非常粗糙的尝试,但我不知道该怎么做。任何帮助都太好了。谢谢。

UIView不遵守NSCopying协议,所以试图复制它很可能会失败——它击中了基础NSObject -mutableCopy,它不做你想要的。要获得克隆视图,您必须重新创建它。处理这个最简单的方法是设置你的X视图,这样它可以从XIB加载,或者实现它作为一个自定义的UIView子类,可以设置自己的内容。

对于前者的示例,请查看文档;这个例子是用来加载自定义表格视图单元格的,但是这种技术很容易适用于一般的自定义视图。

最新更新