我希望使用此方法根据xPos和yPos获取视图中的UIImageView
(或我拥有的任何内容):
- (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
}
非常感谢!
答案 0 :(得分:0)
如果你知道UIImageView对象的框架,那么检查一个点是否在某个矩形中是不是很困难。
但是你尝试过创建UIView的子类,向它添加一个图像。那个类对象在你上面而不是在它上面添加一个UIImageView对象,并在这个UIView的子类而不是你的UIViewController类中实现touches方法?
答案 1 :(得分:0)
我认为没有任何东西可以通过子层次结构。你可以使用UIView方法减少一些工作: -
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event
事件可以是零,但你仍然需要对每个孩子进行测试,并且可能是后代。
答案 2 :(得分:-1)
您可以获取主视图的所有子视图。然后确定是否在子视图中触摸点。
for(UIView *aView in [self subviews])
{
if(CGRectContainsPoint(aView.frame, tappedPt))
{
return aView;
}
}
但它有问题。如果许多子视图重叠,则只能获取视图。您可以修改代码以获取视图数组。