通过单击子视图从超级视图中删除对象

时间:2013-06-20 06:48:59

标签: objective-c nstimer cgrect subviews

我将尝试以最好的方式解释这个问题,所以请与我一起解决,任何帮助将不胜感激。

目前我有一个UIViewController将它放在屏幕上,当它加载时会创建一个CGRects数组。然后,通过填充UIView

,将这些CGRects作为子视图添加到其视图中

然后我创建另一个CGRect并将其放在其中一个子视图中,并用UIImageView填充它。它设置为使用CGRectContainsPoint,如果该点位于UIView CGRects之一,则会将数据传递给该对象,说明它就在那里。

然后我可以点击UIView,它将使用handleTap:从超级视图中删除UIImageView rect的原点。

现在出现问题,我最近实现了一个NSTimer并让它在某些时候丢弃了新的UIImageViews。我还使用CGRectContainsPoint for循环迭代UIView矩形数组,每隔一秒检查一次内部的UIImageView矩形。

当我运行程序时,我可以点击删除最初的程序,但是当我点击另一个程序时它可能会或可能不会自行删除,我不知道为什么。但是,有时当我点击第一个空白方块时,它将删除其中一个,反之亦然。

我知道我只提供了我想要完成的内容的描述,但背后有大量的代码,我现在还没有很有条理。任何帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

我对你的问题不太确定。但我想你想要创建一个视图,当你点击它时,它会自动消失?你尝试添加许多这样的观点,但它不直接你认为。 看看我是否可以提供帮助。你可以创建一个新闻类扩展到UIView并添加一个tapGesture,它将引用一个方法 - (void)removeItSelf:(id)sender;

-(void)removeItself:(id)sender
{
   [self removeFromSuperView];

}

并创建此视图的任何实例,它将被删除没有metter多少你创建。