【问题标题】:How can I find out if I have a UIView where I am long pressing as I move the touch point?当我移动触摸点时,如何确定我是否有一个长按的 UIView?
【发布时间】:2016-11-27 09:50:52
【问题描述】:

我试图弄清楚如何确定我的接触点是否是我将 UIView 作为子视图的位置。背景是 UIView 本身,我正在将多个其他 UIView 添加到......所以当我长按并在按住触摸的同时更改位置时,我想知道此时是否有 UIView。

我一直在想,仍然不清楚如何去做,但遇到了this,这让我想到了获取层次结构的索引并检查它是否大于 1。但是我怎么能在我的地方做到这一点摸摸吗?

任何提示或线索将不胜感激。

【问题讨论】:

  • this answer 对您的案例有用吗?
  • 不!问题是如何查找在我触摸的位置是否有多个图层(子视图)而不是找到 x 和 y。
  • 你是使用 touchesBegun 方法检测触摸还是 UIGestures?

标签: ios objective-c swift uiview swift3


【解决方案1】:

您必须将这两个引用存储在两个对象 myParentViewmySubView 现在只需使用此方法..

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    CGPoint locationPoint = [[touches anyObject] locationInView: myParentView];
    UIView* viewYouWishToObtain = [self hitTest:locationPoint withEvent:event];
    if(mySubView == viewYouWishToObtain){

         //That view is touched
    }else{
        //That view is not touched
}
}

【讨论】:

  • 我有多个 UIView,我真正需要的只是在移动该接触点时检查是否有一个 UIView 我正在触摸。我想我昨晚想通了,hitTest 是一种简单的方法,然后我只检查标签,因为我知道我的 UIView 标签大于数字。所以只要返回视图的标签满足条件,我就知道那里有一个 uiview。无论如何,我认为你的答案非常接近所以,竖起大拇指!
猜你喜欢
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多