2

好吧,这个问题有点修辞。:-) 我知道答案是“因为他们是这样设计的”但仍然......

我正在学习 iOS 开发,发现自己在使小部件(又名 View/UIView)响应事件的所有各种方法上磕磕绊绊。到目前为止,我发现:

  • IBA动作
  • IBOutlet
  • 代表们
  • addTarget:action:forControlEvents:
  • 手势识别器
  • 通知

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

  1. 还有其他我想念的吗?

  2. 是否有任何合理的先验方法来告诉特定小部件使用什么技术?

  3. 是否有哪些小部件支持哪些情况的集中列表?还是我必须通过文档、示例代码和猜测的组合来学习?

4

2 回答 2

2

该列表中的每一件事都有不同的目的,只要了解 iOS 开发和研究就会让你熟悉它们。例如,IBAction 正在通过 Interface builder 连接到事件,而 IBOutlet 正在连接到 Interface Builder 中的 UI 元素。您的问题的完整答案确实是一个很长的教程。

于 2013-02-06T20:11:52.213 回答
0

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

  • Communicating With Objects指南涵盖了出口、委托、数据源、IBActions(又名“目标-动作机制”)和通知(NSNotificationCenter
  • 显然,当您将一个控件拖到它上面时(通常是 Touch Up Inside),每个控件都会决定连接什么用户事件IBAction,但是如果您打开 Connections Inspector,您可以从一长串事件中进行选择,并将它们中的任何一个连接到您的IBAction方法上.
  • addTarget:action:forControlEvents:在 上定义UIControl,这意味着它适用于按钮和滑块,但不适用于表格或工具栏。
于 2013-02-06T21:15:00.030 回答