【问题标题】:Drag a UIButton or a UIImage without subclassing拖动 UIButton 或 UIImage 而不进行子类化
【发布时间】:2012-02-23 10:18:24
【问题描述】:

我有一个自定义控制器,里面有一个 UIImageView (或 UIButton )。我的自定义控制器是一个滑块,所以基本上当 touchesEnded 被调用时,我想检查与其他组件的交集。我无法拖动 UIImageView,如果我将其子类化,我将不得不在 UIIMage 的子类中编写所有逻辑代码,我不想那样做。有没有办法从我的自定义控制器类中拖动它?

谢谢。

【问题讨论】:

  • CGRectIntersectsRect (CGRect rect1, CGRect rect2);如果两个矩形/框架相交或不相交,请使用它..
  • 是的,但是这段代码我必须写在我的 UIImageView 子类中,我不希望这样。我想在 UIControl 子类中包含自定义控制器的所有逻辑。

标签: iphone ios uibutton drag


【解决方案1】:

我建议让每个元素为manage its own touch events。所以UIImageView中的拖拽是独立于父视图的其他事件的。

【讨论】:

  • 是的,但是我需要检查 UImageView 是否与控件中的其他组件相交,这意味着我必须在我的 UImageView 子类中保留对我的控件的引用。我不想那样。
【解决方案2】:

您绝对不必编写“所有逻辑代码”,这就是子类化的全部意义所在。

因此,不要以您想要的方式回答您的问题,而是以您要做的工作最少的方式:

再次考虑子类化。您只需覆盖三个方法并添加一个 iVar。

请在此处查看两个答案:UIView drag (image and text)

【讨论】:

  • 我做了其他事情。我使用 UIPanGestureRecognizer,而我的 UIButton 是唯一可以接受手势识别器触摸的按钮。
  • ` -(BOOL)gestureRecognizer:(UIGestureRecognizer*) gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if (touch.view == sliderButton) return YES;返回否; }`
猜你喜欢
  • 2012-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
相关资源
最近更新 更多