繁体   English   中英

如何使未剪辑的子视图接收触摸事件?

How can I make an unclipped subview receive touch events?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个小的自定义视图,我用作按钮。 我使用一个简单的UIButtonTypeCustom实现这一点,我将其作为视图边界的子视图包含在内。 但是,由于视图很小,我想增加命中目标的大小。 通过将我的按钮的框架设置为大于自定义视图的边界并将clipsToBounds设置为NO,可以轻松完成(人们会想到)。 这适用于可视化(自定义按钮在父视图外部绘制),但它不会在父视图外部区域上接收touchUpInside事件。 如何让按钮接收touchUpInside事件?

- (id) initWithFrame: (CGRect) frame {
  if (self = [super initWithFrame: frame]) {
    self.backgroundColor = [UIColor clearColor];
    self.clipsToBounds = NO;

    // ... various image views and labels ...

    UIButton *touchArea = [UIButton buttonWithType: UIButtonTypeCustom];
    touchArea.backgroundColor = [UIColor colorWithRed: 1 green: 0 blue: 0 alpha: .3]; // so I can see the bounds
    CGRect touchAreaFrame = self.bounds;
    CGFloat checkboxHitTargetExtension = 7;
    touchAreaFrame.origin.y -= checkboxHitTargetExtension;
    touchAreaFrame.size.height += (checkboxHitTargetExtension * 2);
    touchArea.frame = touchAreaFrame;
    [self addSubview: touchArea];

    // ... add listeners etc ...
  }
  return self;
}
2 个回复

您可以使用pointInside:withEvent:来定义特定点是否在视图“内部”。 有关详细信息,请参阅UIView参考。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIView_Class/UIView/UIView.html

结帐CGRectOffset非常方便使CGRect更大。

使按钮不是视图的子项,而是视图的兄弟,并且位于它的顶部,然后按钮的触摸没有剪切问题。

2 子iframe不接收触摸事件

我有如下代码; 现在,我希望iframe数据表在iPad的主页中滚动。 我在iframe页面上使用了js来监听触摸事件touchstart,touchmove等 但是由于某些原因,这些事件从未在iPad上触发。 我也尝试过 请你帮助我好吗。 谢谢... ...

3 触摸事件视图和子视图

我有一个视图和一个子视图。 我在viewController的loadView方法中添加子视图。 第一次甚至发生触摸时,它都会进入视图,而所有后续触摸都将进入子视图。 为什么会发生这种情况,如何更改它以便视图和子视图都能看到所有触摸事件? ...

8 获取正在接收所有触摸事件的视图

我的系统叠加层位于所有Activities和Windows之上。 唯一的问题是,仅当用户将他/她放到屏幕上时,它才能检测到MotionEvents (它无法跟踪手指的运动或检测到手指何时被抬起)。 作为一种可能的解决方案,我实现了第二个视图(我将其称为跟踪视图),该视图能够处理所有触摸事件, ...

9 为什么UIView的这些自动布局约束会阻止UIButton子视图接收触摸事件?

我正在以编程方式使用自动布局。 我有一个带有几个控件的简单UIViewController ,其中包括两个并排布置的UIButton 。 我经常在UIView中将相关控件分组,以充当容器,从而使控件组的排列更易于管理。 您将在下面看到_iapButtonsView ,其中包含两个按钮和一些 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM