我的屏幕上有一些这样的视图

__________________
|          _____  |
|          |    | | //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.


我的问题是,我不知道如何注册触摸事件,以便无论用户触摸屏幕的哪个视图,它都可以识别任何触摸事件。.atm im为其中的每个视图处理触摸事件。所以一切都很好...

但是,我试图做的是,当用户在屏幕上除viewY之外的其他任何位置上轻按时,应通过在viewY类中调用该方法来消失viewY。

此viewY类已实例化,并且未附加任何xib文件。 uiview是在viewY类中以编程方式创建的。 viewY行为的整个类都在viewX-视频视图中实例化。

我的老板说,增加代表..虽然我现在知道如何做到这一点...有什么帮助吗?

无论如何,无论我从哪个班级打电话,我都可以使其变得非常简单并能够说出删除视图?

我还看过其他人通过使用这些时髦的箭头-> ...
啊,我认为香港专业教育学院使我的问题相当复杂,但我的意思是说这是一个简单的问题,并且知道可以通过简单的方式完成!

最佳答案

不会打电话

[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)。

10-06 13:26