如何将事件与图像视图相关联?

时间:2010-01-04 02:26:33

标签: iphone xcode iphone-sdk-3.0 image interface-builder

我有一个带有图片视图的应用。当用户点击此视图时,我想运行一些代码,这些代码将更改标签的颜色,然后隐藏此视图

我在界面中设置了所有内容,例如Outlets等,但我没有看到任何可用于关联的事件

有人可以帮助或指点我的好教程吗?

干杯

3 个答案:

答案 0 :(得分:1)

您不应该使用图像视图,您应该使用UIButton。 ImageViews主要用于显示,不允许交互(这就是默认情况下userInteractionEnabled标志为OFF的原因。)

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

我最后一次需要这样做时我也只使用了一个按钮。你可以随时设置突出显示的状态,这样当有人点击它时它就不会突出显示,如果那是你想要避免的。

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

如果您在UIControl中放置视图并且子视图未选中“已启用用户交互”(即禁用了用户交互),则在UIControl内部点击这样的内容就会忽略这些内容并直接进入UIControl。因此,如果出于某种原因需要,另一种方法是创建UIView,将类更改为UIControl,然后在通用UIControl视图中放置一个或多个UIImageViews,UILabel或任何您想要的内容。然后,您可以从通用UIControl获取操作,就好像所有内容都不在其中一样。

相关问题