我的屏幕有一些像这样的视图
__________________
| _____ |
| | | | //viewX is a video screen
| | | |
| viewX | vY | | //viewY is a custom uiview i created.
| |____| | //it contains a method which i would like to call that toggles
|_________________| //the hidden property of this view. and when it hides, a little
| | //button is replaced no the top right corner on top of viewX
| viewZ | //the video layer
| |
|_________________| //viewZ is a view containing many square views - thumbnails.
我的问题是,我不知道如何注册触摸事件,以便无论用户触摸屏幕的哪个视图,它都能识别任何触摸事件。我正在处理其中每个视图的触摸事件。所以一切运作良好......
然而,我试图做的是当用户点击屏幕上的任何其他地方但在viewY上时,viewY应该通过在viewY类中调用该方法来消除。此viewY类已实例化,并且没有附加xib文件。 uiview是在viewY类中以编程方式创建的。 viewY behviour的整个类在viewX中被实例化 - 视频视图。
我的老板说添加代表..虽然我现在已经知道如何做到这一点......任何帮助?
无论如何,我可以让它变得非常简单,并且能够说出REMOVE VIEW,无论我来自哪个班级?
我也看到其他人通过使用这些时髦的箭头来实现这一点 - > ......< - etc ..虽然我不确定那是不是我需要什么或如何实现这样的事情。
啊我觉得我的问题很复杂,但我的意思是说它很简单,并且知道它可以很容易地完成!
答案 0 :(得分:1)
不会打电话
[viewY hideThisViewAndShowLittleButton];
做正确的工作?如果要删除viewY,可以调用:
[viewY removeFromSuperview];
要从viewY
访问viewZ
,只要viewZ
有权访问viewX
,您就可以在viewX
中定义一个返回给您的方法viewY
。类似的东西(在viewX
的实施文件中:
- (UIView*)viewY {
return <viewX_knows_which_value_to_return>;
}
至于viewX_knows_which_value_to_return
,只要viewY
是唯一的子视图,您就可以这样做:
[self.view.subviews lastObject];
(注意:我假设这里实际上viewX是一个视图控制器,而不是UIView)。
答案 1 :(得分:0)
这是一个好方法。 您甚至可以通过隐藏或添加alpha来实现此目的。
vY.hidden = YES;
将其取回
vY.hidden = NO;