在 Objective C 中的 UIView 中的命中测试

Posted

技术标签:

【中文标题】在 Objective C 中的 UIView 中的命中测试【英文标题】:Hit Test in UIView in Objective C 【发布时间】:2018-07-29 05:39:51 【问题描述】:

在 UIViewController 中,我添加了一个名为 testView 的 UIView

@property(nonatomic) UIView * testView;

-(UIView *)testView
    if (!_testView) 
        _testView = [UIView new];

        _puzzleView.translatesAutoresizingMaskIntoConstraints = NO;

  
return testView


然后我将该视图添加到 ViewController。我想检测 testView 中的触摸。如何在 ViewController 中的 UIView 中添加 hitTest 方法

【问题讨论】:

查看***.com/questions/18060365/… 最简单的方法是放置一个UITapGestureRecognizer 或任何其他UIGestureRecognizer 并将其安装在您想要的视图上。 developer.apple.com/library/archive/referencelibrary/… 【参考方案1】:

在 ViewController 中添加以下代码:

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

    CGPoint point = [[touches anyObject] locationInView:self];
    point = [self.testView.layer convertPoint:point fromLayer:self.layer]; 
    if ([self.testView.layer containsPoint:point]) 
        //touch on the testView
    
 

【讨论】:

以上是关于在 Objective C 中的 UIView 中的命中测试的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Objective C在UItableView中增加UIView高度?

在 UIView Objective C 中显示 HTML 内容

如何在 Swift 中调用 Objective C UIView 的 initWithFrame

如何在Objective C中仅弯曲UIView的顶角而不是整个视图?

如何在Objective C中只绘制UIView的顶角而不是整个视图?

调整 UIView 的大小,以便我绘制的任何内容都可见 - Objective C