iOS UIButton 事件,当它的框架位于超级视图的负位置时

Posted

技术标签:

【中文标题】iOS UIButton 事件,当它的框架位于超级视图的负位置时【英文标题】:iOS UIButton event when its frame at negative position from superview 【发布时间】:2013-06-20 12:43:40 【问题描述】:

我有一个视图 A 有框架 (100, 200, 320, 200)。我添加了一个 UIButton B 来查看带有框架 (0, -100, 50, 50) 的 A。如何接收按钮 B 的 TouchUpInside 事件。

我在网上尝试了一些方法

A.clipsToBound = NO;

在视图 A 上我实现了 hitTest:withEvent 以返回接收到的视图是 B。

但是当我触摸按钮 B 时,它不会执行 hitTest 函数,因此它什么也不做。

为什么我可以这样做?我在有关 UIView 的 Apple 文档上读到,它说 set clipsToBound 是 NO,问题已解决,但我不这么认为。关于我的按钮 B (-100) 的负位置 y 的问题。

【问题讨论】:

是的,问题出在按钮 B 的 origin.y 上。如果它是负数,那么它不在视图 A 中。您希望将按钮放在视图 A 的哪个位置? @Akash 这完全是为了我的应用程序设计,我必须投入其中。您认为视图 A 是我的主视图的一部分,而视图 B 是视图 A 的一小部分。我无法将视图 B 添加到我的主视图中。有没有什么好的解决方案来解决它。谢谢 我认为您想在主视图中添加按钮。我说的对吗? 【参考方案1】:

B 不在视图中。它比它高100分。用户应该如何与之交互?

【讨论】:

是的,这实际上是我的问题。你有什么想法或建议吗,谢谢 使用出现在屏幕上的框架。 @Abizem 你能更清楚地描述一下,你的意思是框架吗?谢谢:) 框架是视图在其父视图中占据的矩形。正如您在问题中所说,B 的框架在 A 之外。 是的,我怎样才能在获得事件触摸的同时使用它。 :)

以上是关于iOS UIButton 事件,当它的框架位于超级视图的负位置时的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 以编程方式使用自动布局将 UIView 定位在超级视图的中心

限制在超级视图中水平和垂直居中阻止我更改框架

当 UILabel 动态调整大小时,在 UIView 中移动 UIButton。 iOS

按下按钮(子视图)时不要在超级视图上处理平移手势

超级快的python vibora.io框架

将按钮超级视图控制器添加到另一个视图控制器时,UIButton 目标无法识别