【问题标题】:iOS: Get Component ID in UIPanGestureRecognizer EventiOS:在 UIPanGestureRecognizer 事件中获取组件 ID
【发布时间】:2013-04-17 16:52:20
【问题描述】:

继之前的unsuccessful post 之后,我想通过在调用 (UIPanGestureRecognizer *)recognizer) 方法时获取组件识别器的 ID 来尝试解决该问题的新方法。在我的代码下面:

- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer{

// Here, I want to get the ID of the recognizer eg: (a button.id)

}

拜托,请问我该怎么做才能捕获 ID 对象。

【问题讨论】:

  • 你想要用户最初触摸的对象吗?还是您想要用户平移到的对象?
  • 是的,我想要用户拖动的组件。事实上,我的上下文是,我有一个带有多个按钮的屏幕,可以拖动这些按钮,我想要拖动按钮的 ID。

标签: ios uiviewcontroller uipangesturerecognizer


【解决方案1】:

我不知道您认为“id”是什么或它可能有什么用处。如果您想知道 this 对象是否与 that 对象相同,只需将它们与相等运算符进行比较即可。

handlePan: 中,平移手势识别器为recognizer。您可以从那里轻松获得的所有其他东西都是recognizer 的属性。例如,正在平移的视图(被触摸的视图)是recognizer.view。阅读 UIGestureRecognizer 文档(和 UIPanGestureRecognizer 文档)以获取完整列表。

当然,这是您的方法,因此如果您通过属性为自己提供了对其他信息的访问权限,则可以访问这些信息。例如,如果self 是 MyViewController,那么您可以访问 MyViewController 的所有公共和私有属性。

【讨论】:

  • 无可挑剔。我发现: NSString *id = Recognizer.view.restorationIdentifier;谢谢马特!
  • 我当然不建议滥用restorationIdentifier 作为某种对象标识符。前面说过,对象自己的唯一标识,可以直接和其他对象比较,知道哪个是这个对象。
  • hmm 好的,那么对象的 key 属性是什么,使用什么方法来访问它?识别器.view.[keyProperty] ?
  • 我不知道“id”或“key property”(对您而言)是什么意思,也不知道您为什么认为需要它们。你能解释一下你想做什么吗?
猜你喜欢
  • 2015-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-19
  • 1970-01-01
  • 1970-01-01
  • 2013-04-28
  • 1970-01-01
相关资源
最近更新 更多