如何将子视图拖出父视图?

Posted

技术标签:

【中文标题】如何将子视图拖出父视图?【英文标题】:How can I drag a subview out of the parent view? 【发布时间】:2015-06-23 08:53:36 【问题描述】:

所以在我的应用程序中,我有一个UIImageView[1],它占据了屏幕的上半部分。我还有一个 TapGesture 识别器,它添加了UIImageView[2] 作为UIImageView[1] 的子视图。

在我的应用程序的下半部分,我有另一个 UIImageView[3] 我需要 UIImageView[2] 才能与之交互。 但是,当我将UIImageView[2] 拖到UIImageView[1] 的框架之外时,它显然会消失。 我想知道是否有人知道我可以将UIImageView[2] 拖到UIImageView[3] 而不会使UIImageView[2] 消失,同时仍保持UIImageView[1] 的框架。

我尝试调整 UIImageView[1] 的大小以仅包含整个屏幕,但由于我使用的是 Aspect Fit,它使图像居中,如果我使用左上对齐的东西,它的宽高不适合它。

【问题讨论】:

【参考方案1】:

试试这个禁用子视图剪辑:

[parentView clipsToBounds:NO];

【讨论】:

这可行,但是如果我再次拖动图像,即使启用了 UserInteraction,我也无法再次触摸它。有任何想法吗?感谢您迄今为止的帮助!【参考方案2】:

尝试以下操作将UIImageView[2] 拖动到视图中的任何其他位置

[self.view addsubview: UIImageView[2]];

【讨论】:

这行得通,让我在视图之外触摸它,但它使一些 CGRectIntersectsRect 语句我的行为非常奇怪(即使两者没有接触,它也会调用语句)。有任何想法吗?感谢您的帮助! 这个抱歉我忘了加。 if (CGRectIntersectsRect(UIImageView[2], UIImageView[3].frame) || (CGRectEqualToRect(UIImageView[2], UIImageView[3].frame)) UIImageView *selectedimage = [_myArray objectAtIndex:0]; [selectedimage removeFromSuperview] ; @Pecans 如果您编辑您的问题并添加以上行会更好,这也将有助于其他人更好地理解您的问题。

以上是关于如何将子视图拖出父视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何将子视图从其父视图的父视图置于顶部

如何将子视图添加到另一个视图控制器?

如何按顺序将子视图添加到 UIScrollView

如何将子视图添加到 TableViewCell?

如何将子视图添加到自定义 UICollectionViewCell

如何使用自动布局(约束)将子视图添加到 UIPageViewController?