1

我想UIImageView使用这种方法根据 xPos 和 yPos 在视图中获取(或我拥有的任何东西):

- (void) touchesMoved: (NSSet *)touches withEvent:(UIEvent *)event {
  CGPoint tappedPt = [[touches anyObject] locationInView:viewIndex];
  int     xPos = tappedPt.x;
  int     yPos = tappedPt.y;

  NSLog(@"xPos %i yPos %i ", xPos, yPos);


  // do something with xPos and yPos like add them to an array
}

非常感谢 !

4

3 回答 3

0

只要您知道 UIImageView 对象的框架,检查一个点是否位于某个矩形中应该不难。

但是您是否尝试过创建 UIView 的子类,向其中添加图像。而你的那个类对象而不是在它上面添加一个 UIImageView 对象,并在这个 UIView 的子类而不是你的 UIViewController 类中实现触摸方法?

于 2012-07-24T08:27:01.143 回答
0

我认为没有任何东西可以穿过子层次结构。您可以使用 UIView 方法减少一些工作:-

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

其中 event 可以为零,但您仍然必须对每个孩子进行该测试,并且可能是后代。

于 2012-07-24T08:49:59.130 回答
-1

您可以获得主视图的所有子视图。然后判断子视图中是否有触摸点。

for(UIView *aView in [self subviews])
{
    if(CGRectContainsPoint(aView.frame, tappedPt))
    {
        return aView;
    }
}

但它有一个问题。如果许多子视图重叠,你只能得到一个视图。您可以修改代码以获取视图数组。

于 2012-07-24T08:37:11.160 回答