2010-01-04 47 views
0

我有一个图像视图的应用程序。当用户点击这个视图时,我想运行一些代码,这将改变标签的颜色,然后隐藏这个视图如何将事件与图像视图关联?

我已经在界面中设置了一切,即出口等,但我没有看到任何事件可用助理

任何人都可以帮助或指向一个很好的教程方向尽快请?

干杯

保罗

回答

1

你不应该使用的形象图对于这一点,你应该使用一个UIButton。 ImageViews主要用于显示,不允许进行交互(这就是默认情况下,它们的userInteractionEnabled标志为OFF的原因。)

0

查看UIResponder的文档 - 所有UIViews(包括UIImageView)都从它继承。反过来,UIResponder定义了一组可以覆盖的方法来处理您正在查看的事件类型。首先通过继承UIImageView(称为MyImageView),然后覆盖touchesEnded:withEvent:方法。

正如Ben Gottlieb所说,然而,这可能是对UIKit框架的滥用 - 只要确保您创建的用户交互是合理的,并符合良好的UI实践。

0

我最后一次需要做到这一点,我只是用了一个按钮。您可以随时设置突出显示的状态,以便在有人点击时不会突出显示,如果这正是您想要避免的。

请注意,UIControl中实现了更高级别的UI“操作”,因此如果您只需要跟踪“Touch Up Inside”等操作,那么可以避免事件层,在Interface Builder中创建UIView,然后将该类更改为UIControl。然后,您应该能够使用连接检查器并将任何控制操作连接到任何设备。

如果您将视图放置在UIControl中并且子视图的“用户交互已启用”未选中(即禁用了用户交互),那么在UIControl中点击等就忽略这些并进入UIControl。所以如果你需要出于某种原因,另一种方法是创建一个UIView,将该类更改为UIControl,然后在通用UIControl视图中放置一个或多个UIImageView,UILabels或任何你想要的东西。然后你可以从通用的UIControl获得动作,就好像所有的东西都不在里面一样。

相关问题