我的屏幕上有一些这样的 View
__________________
| _____ |
| | | | //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.
我的问题是,我不知道如何注册触摸事件,以便无论用户触摸哪个 View ,它都能识别任何触摸事件。atm 我正在处理其中每个 View 的触摸事件。所以一切正常...
但是我想做的是,当用户点击屏幕上除 viewY 之外的任何其他位置时,viewY 应该通过调用 viewY 类中的该方法来消失。
此 viewY 类已实例化,并且没有附加 xib 文件。 uiview 是在 viewY 类中以编程方式创建的。 viewY 行为的整个类在 viewX(视频 View )中实例化。
我的老板说添加代表......虽然我现在知道如何做到这一点......有什么帮助吗?
无论如何,我是否可以让它变得非常简单,并且无论我从哪个类调用,都可以说“删除 View ”?
我也看到其他人通过使用这些时髦的箭头 -> ... <- 等来实现这一点。尽管我不确定这是否是我需要的或如何实现这样的事情。
啊,我认为我让我的问题变得相当复杂,但我真的想让它成为一个简单的问题,并且知道它可以通过一种简单的方式完成!
最佳答案
不会打电话
[viewY hideThisViewAndShowLittleButton];
做正确的工作吗?如果你想删除 viewY 那么你可以调用:
[viewY removeFromSuperview];
为了从 viewZ
访问 viewY
,假设 viewZ
可以访问 viewX
,您可以定义viewX
中返回给您 viewY
的方法。类似于(在 viewX
的实现文件中:
- (UIView*)viewY {
return <viewX_knows_which_value_to_return>;
}
对于viewX_knows_which_value_to_return
,假设viewY
是唯一的 subview ,您可以这样做:
[self.view.subviews lastObject];
(注意:我在这里假设 viewX 实际上是一个 View Controller ,而不是 UIView)。
关于objective-c - 如何从当前类中实例化的另一个类调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11331715/