为什么有这么多方法将视图连接到UIKit中的事件?

时间:2013-02-06 20:03:08

标签: iphone ios xcode cocoa uikit

好的,这个问题有点夸夸其谈。 :-)我知道答案是“因为他们设计的方式”但仍然......

我正在学习iOS开发,并发现自己在制作一个小部件(即View / UIView)响应事件的各种方法上遇到了障碍。到目前为止,我发现:

  • IBAction为
  • IBOutlet中
  • 代表
  • addTarget:动作:forControlEvents:
  • 手势识别器
  • 通知

(...更不用说Interface Builder支持其中一些技术,但不是全部,甚至它支持的技术并不总是有效,或者在神奇地出现之前需要一些自定义编码。)

  1. 还有其他我错过了吗?

  2. 是否有任何理性的先验方式来说明与特定小部件一起使用的技术?

  3. 是否有哪些小部件支持哪些案例的集中列表?或者我是否需要通过文档,示例代码和猜测的组合来学习?

2 个答案:

答案 0 :(得分:2)

该列表中的所有内容都有不同的目的,只需了解iOS开发以及研究将使您熟悉它们。例如,当IBOutlet连接到Interface Builder中的UI元素时,IBAction通过“接口”构建器连接到事件。对你的问题的完整答案实际上是一个很长的教程。

答案 1 :(得分:0)

在这个答案中。当我发现它们时,我会匆匆列出一些规则。 (也许我会把它变成一个社区维基。)

  • Communicating With Objects指南涵盖了出口,代表,数据来源,IBActions(又名“目标行动机制”)和通知(NSNotificationCenter 等等。)< / LI>
  • 显然,当您控制 - 将IBAction拖到其上时(通常是Touch Up Inside),每个控件都会决定连接哪个用户事件,但是如果您打开Connections Inspector,则可以从一长串事件中进行选择并将其中任何一个挂钩到IBAction方法上。
  • addTarget:action:forControlEvents:UIControl上定义,这意味着它适用于按钮和滑块,但不适用于表格或工具栏。