在UIScrollView之外移动UIIMageView

时间:2010-06-06 06:33:53

标签: iphone ipad

在我的主要UIView的底部,我有一个内部有UIImageView的UIScrollView。

我想将UIImageView从UIScrollView移动到我的UIView的顶部。

我可以在UIScrollView中移动我的UIImageView,但在外面,我不能。 UIImageView保留在UIScrollView中,它是父级。

有什么想法吗?

提前感谢您的帮助。

致以最诚挚的问候,

ALX

2 个答案:

答案 0 :(得分:3)

不要被UI的类比所迷惑。视图实际上不是可以轻松拾取并从一个位置移动到另一个位置的物理对象。我们使用与幻觉的明显运动无关的代码创建物理对象的幻觉。

做你想做的事会需要一些工作。

视图仅在超级视图中绘制自己。它的框架由它在superview中的位置定义。一旦框架被定义为在超级视图之外,它就不再自行绘制,而是从UI中消失。这就是为什么你不能将UIImage拖到任何你想要的地方。

您需要做的是创建一个覆盖滚动视图和目标视图的透明概述。当用户启动拖动时,您必须从滚动视图中删除UIImageView并将其添加到概述中(或者,隐藏滚动视图UIImageView并在概述中创建副本)。然后,UIImage将在概述中绘制自己,这将产生幻觉,即它被拖出滚动视图。然后在目标视图中反转拥有。

您可能希望至少为iPhone重新考虑您的设计。用户很难在小屏幕上拖动项目,特别是如果屏幕本身必须滚动。

答案 1 :(得分:0)

据我了解,您将代码UIImageView添加为UIScrollView的子视图,但后来无法进行反向操作。

如果是这样,在你的UIViewController中使用类似的东西:

[yourImageView removeFromSuperview];
[self.view addSubview:yourImageView];

如果没有,请在问题中添加更多详细信息......