Objective c 是否向窗口添加子视图,以及切换可见性的特定键?
我已经知道了如何创建一个新的UI元素,在这里我触摸并使用[self.view addSubview:[uilabel reference]]添加它。但是,如果我在同一个位置点击,它只会在当前子视图的顶部添加另一个子视图 我能够为正在制作的网格的每个部分创建一个唯一的关键点(从而放置子视图)。是否有任何方法可以使用键标记此子视图,以便在其上切换可见性 下面是一些代码: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 -
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:
在这里找到了我的解决方案:感谢您提供更多的答案!