Objective c 是否向窗口添加子视图,以及切换可见性的特定键?

Objective c 是否向窗口添加子视图,以及切换可见性的特定键?,objective-c,cocoa,cocoa-touch,uiview,Objective C,Cocoa,Cocoa Touch,Uiview,我已经知道了如何创建一个新的UI元素,在这里我触摸并使用[self.view addSubview:[uilabel reference]]添加它。但是,如果我在同一个位置点击,它只会在当前子视图的顶部添加另一个子视图 我能够为正在制作的网格的每个部分创建一个唯一的关键点(从而放置子视图)。是否有任何方法可以使用键标记此子视图,以便在其上切换可见性 下面是一些代码: CGRect rectNote = CGRectMake(notePosX, notePosY, noteFrameWidth -

我已经知道了如何创建一个新的UI元素,在这里我触摸并使用[self.view addSubview:[uilabel reference]]添加它。但是,如果我在同一个位置点击,它只会在当前子视图的顶部添加另一个子视图

我能够为正在制作的网格的每个部分创建一个唯一的关键点(从而放置子视图)。是否有任何方法可以使用键标记此子视图,以便在其上切换可见性

下面是一些代码:

CGRect rectNote = CGRectMake(notePosX, notePosY, noteFrameWidth - 2, noteFrameHeight - 3);

UILabel *rectNoteLabel = [[UILabel alloc] initWithFrame:rectNote];

//label settings

[self.view addSubview:rectNoteLabel];

显然,我计算了标签的位置,它可能被用作子视图的键。

您可以通过向父视图发送
-hitTest:
来测试该位置是否存在子视图

在控制类中保留可变数组或集合,并在实际添加新视图之前对其内容进行测试可能更容易。(遍历数组的开销将与遍历父视图的子视图的开销相同,并且在任何一种情况下都可能不重要。)

UIview有一个“tag”属性,因此可以标记视图,稍后再查找

然后您可以调用[self.view view withtag:blah]将其取回

如果您只是想确定单击的位置是否存在子视图,那么Jonathan Grynspan已经提到了-hitTest:

在这里找到了我的解决方案:感谢您提供更多的答案!